Overview
Comment: | Add of_forward_stret for ARM/ELF. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
2b1b0f8b5961796e721414f37e7344a7 |
User & Date: | js on 2013-07-28 15:29:33 |
Other Links: | manifest | tags |
Context
2013-07-28
| ||
21:07 | Replace OFTLSKey w/ +[OFThread threadDictionary]. check-in: 1eaf875a88 user: js tags: trunk | |
15:29 | Add of_forward_stret for ARM/ELF. check-in: 2b1b0f8b59 user: js tags: trunk | |
15:28 | Add objc_msg_lookup_stret for ARM/ELF. check-in: f727480860 user: js tags: trunk | |
Changes
Modified src/OFObject.h from [4855a8b423] to [c0a893a0e3].
︙ | ︙ | |||
95 96 97 98 99 100 101 | # if defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \ defined(__ppc__) # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR_STRET # endif #else # ifdef __ELF__ | | > < < < | 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | # if defined(__x86_64__) || defined(__i386__) || defined(__arm__) || \ defined(__ppc__) # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR_STRET # endif #else # ifdef __ELF__ # if defined(__amd64__) || defined(__x86_64__) || defined(__i386__) || \ defined(__arm__) || defined(__ARM__) # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR # if __has_feature(objc_msg_lookup_stret) # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR_STRET # endif # endif # if (defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32) || \ (defined(__mips_eabi) && _MIPS_SZPTR == 32) # define OF_HAVE_FORWARDING_TARGET_FOR_SELECTOR # endif # endif #endif |
︙ | ︙ |
Modified src/forwarding-arm-elf.S from [a8e2abaeb9] to [9a7d09481f].
︙ | ︙ | |||
15 16 17 18 19 20 21 | */ .globl of_forward .globl of_forward_stret .section .text of_forward: | < | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | */ .globl of_forward .globl of_forward_stret .section .text of_forward: stmfd sp!, {r0-r3, lr} fstmfdd sp!, {d0-d7} ldr r1, sel_forwardingTargetForSelector__indirect_L0 .L0: add r1, pc stmfd sp!, {r1} |
︙ | ︙ | |||
43 44 45 46 47 48 49 50 | fldmfdd sp!, {d0-d7} ldmfd sp!, {r0-r3, lr} bx r12 .type of_forward, %function .size of_forward, .-of_forward init: | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > > | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | fldmfdd sp!, {d0-d7} ldmfd sp!, {r0-r3, lr} bx r12 .type of_forward, %function .size of_forward, .-of_forward of_forward_stret: stmfd sp!, {r0-r3, lr} fstmfdd sp!, {d0-d7} mov r0, r1 ldr r1, sel_forwardingTargetForSelector__indirect_L1 .L1: add r1, pc stmfd sp!, {r1} bl objc_msg_lookup(PLT) ldmfd sp!, {r1} mov r12, r0 ldr r0, [sp, #68] ldr r2, [sp, #72] blx r12 str r0, [sp, #68] ldr r1, [sp, #72] bl objc_msg_lookup(PLT) mov r12, r0 fldmfdd sp!, {d0-d7} ldmfd sp!, {r0-r3, lr} bx r12 .type of_forward_stret, %function .size of_forward_stret, .-of_forward_stret init: ldr r0, module_indirect_L2 .L2: add r0, pc b __objc_exec_class(PLT) sel_forwardingTargetForSelector__indirect_L0: .long sel_forwardingTargetForSelector_-(.L0+8) sel_forwardingTargetForSelector__indirect_L1: .long sel_forwardingTargetForSelector_-(.L1+8) module_indirect_L2: .long module-(.L2+8) .section .ctors, "a", %progbits .long init .section .rodata str_forwardingTargetForSelector_: .asciz "forwardingTargetForSelector:" |
︙ | ︙ |