Differences From Artifact [8c7b39978c]:
- File
src/forwarding/forwarding-arm-elf.S
— part of check-in
[9a4792a99e]
at
2014-04-10 00:03:50
on branch trunk
— forwarding/*.S: Include config.h
This is not strictly needed (and means its even included twice, as
forwarding.S already includes config.h), but it helps to assemble the
file directly without going through forwarding.S. (user: js, size: 2797) [annotate] [blame] [check-ins using]
To Artifact [fe09c3766a]:
- File src/forwarding/forwarding-arm-elf.S — part of check-in [dc5938cee7] at 2014-04-23 18:56:06 on branch trunk — forwarding-arm-elf.S: Add #ifdef HAVE_VFP2 (user: js, size: 2929) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
17 18 19 20 21 22 23 | #include "config.h" .globl of_forward .globl of_forward_stret .section .text of_forward: | | > > | | | | | | < > > > < > > > | > > | | | | | | < > > > < > > > | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | #include "config.h" .globl of_forward .globl of_forward_stret .section .text of_forward: #ifdef HAVE_VFP2 fstmfdd sp!, {d0-d7} #endif stmfd sp!, {r0-r4, lr} ldr r4, sel_forwardingTargetForSelector_$indirect_.L0 .L0: add r4, pc bl object_getClass(PLT) mov r1, r4 bl class_respondsToSelector(PLT) cmp r0, #0 beq 0f ldr r0, [sp, #0] mov r1, r4 bl objc_msg_lookup(PLT) mov r12, r0 ldr r0, [sp, #0] mov r1, r4 ldr r2, [sp, #4] blx r12 cmp r0, #0 beq 0f ldr r1, [sp, #0] cmp r0, r1 beq 0f str r0, [sp, #0] ldr r1, [sp, #4] bl objc_msg_lookup(PLT) mov r12, r0 ldmfd sp!, {r0-r4, lr} #ifdef HAVE_VFP2 fldmfdd sp!, {d0-d7} #endif bx r12 0: ldmfd sp!, {r0-r4, lr} #ifdef HAVE_VFP2 fldmfdd sp!, {d0-d7} #endif b of_method_not_found(PLT) .type of_forward, %function .size of_forward, .-of_forward of_forward_stret: #ifdef HAVE_VFP2 fstmfdd sp!, {d0-d7} #endif stmfd sp!, {r0-r4, lr} ldr r4, sel_forwardingTargetForSelector_$indirect_.L1 .L1: add r4, pc mov r0, r1 bl object_getClass(PLT) mov r1, r4 bl class_respondsToSelector(PLT) cmp r0, #0 beq 0f ldr r0, [sp, #4] mov r1, r4 bl objc_msg_lookup(PLT) mov r12, r0 ldr r0, [sp, #4] mov r1, r4 ldr r2, [sp, #8] blx r12 cmp r0, #0 beq 0f ldr r1, [sp, #4] cmp r0, r1 beq 0f str r0, [sp, #4] ldr r1, [sp, #8] bl objc_msg_lookup_stret(PLT) mov r12, r0 ldmfd sp!, {r0-r4, lr} #ifdef HAVE_VFP2 fldmfdd sp!, {d0-d7} #endif bx r12 0: ldmfd sp!, {r0-r4, lr} #ifdef HAVE_VFP2 fldmfdd sp!, {d0-d7} #endif b of_method_not_found_stret(PLT) .type of_forward_stret, %function .size of_forward_stret, .-of_forward_stret init: ldr r0, module$indirect_.L2 .L2: |
︙ | ︙ |