1#include "asm-arm.h" 2 .text 3 .align 2 4 DECLARE_FUNCTION(callback_receiver) 5FUNBEGIN(callback_receiver) 6 // args = 28, pretend = 0, frame = 32 7 // frame_needed = 1, uses_anonymous_args = 0 8 mov ip, sp 9 stmfd sp!, {r4, fp, ip, lr, pc} 10 mov r2, $0 11 sub fp, ip, $4 12 sub sp, sp, $32 13 ldr r4, [fp, $4] 14 str r2, [fp, $-28] 15 add r3, fp, $28 16 str r2, [fp, $-24] 17 str r2, [fp, $-48] 18 str r3, [fp, $-32] 19 bic sp, sp, $7 20 ldr r0, [r4, $4] 21 sub r1, fp, $48 22 mov lr, pc 23 ldr pc, [r4, $0] 24 ldr r2, [fp, $-24] 25 cmp r2, $0 26 ldmeqea fp, {r4, fp, sp, pc} 27 cmp r2, $1 28 beq L(36) 29 cmp r2, $2 30 ldreqsb r0, [fp, $-40] 31 ldmeqea fp, {r4, fp, sp, pc} 32 cmp r2, $3 33 beq L(36) 34 cmp r2, $4 35 ldreqsh r0, [fp, $-40] 36 ldmeqea fp, {r4, fp, sp, pc} 37 cmp r2, $5 38 ldreqh r0, [fp, $-40] 39 ldmeqea fp, {r4, fp, sp, pc} 40 cmp r2, $6 41 beq L(40) 42 cmp r2, $7 43 beq L(40) 44 cmp r2, $8 45 beq L(40) 46 cmp r2, $9 47 beq L(40) 48 sub r3, r2, $10 49 cmp r3, $1 50 bls L(41) 51 cmp r2, $12 52 ldreq r0, [fp, $-40] // float 53 ldmeqea fp, {r4, fp, sp, pc} 54 cmp r2, $13 55 beq L(41) 56 cmp r2, $14 57 beq L(40) 58 cmp r2, $15 59 ldmneea fp, {r4, fp, sp, pc} 60 ldr r3, [fp, $-48] 61 tst r3, $1024 62 ldmeqea fp, {r4, fp, sp, pc} 63 ldr r3, [fp, $-20] 64 cmp r3, $1 65 ldreq r3, [fp, $-28] 66 ldreqb r0, [r3, $0] // zero_extendqisi2 67 ldmeqea fp, {r4, fp, sp, pc} 68 cmp r3, $2 69 ldreq r3, [fp, $-28] 70 ldrne r3, [fp, $-28] 71 ldreqh r0, [r3, $0] 72 ldrne r0, [r3, $0] 73 ldmea fp, {r4, fp, sp, pc} 74L(40): 75 ldr r0, [fp, $-40] 76 ldmea fp, {r4, fp, sp, pc} 77L(41): 78 sub r0, fp, $40 79 ldmia r0, {r0, r1} // phole ldm 80 ldmea fp, {r4, fp, sp, pc} 81L(36): 82 ldrb r0, [fp, $-40] // zero_extendqisi2 83 ldmea fp, {r4, fp, sp, pc} 84L(fe1): 85 FUNEND(callback_receiver) 86 .align 2 87 .global C(callback_get_receiver) 88 DECLARE_FUNCTION(callback_get_receiver) 89FUNBEGIN(callback_get_receiver) 90 // args = 0, pretend = 0, frame = 0 91 // frame_needed = 1, uses_anonymous_args = 0 92 mov ip, sp 93 stmfd sp!, {sl, fp, ip, lr, pc} 94 ldr sl, L(44) 95 ldr r3, L(44)+4 96L(43): 97 add sl, pc, sl 98 sub fp, ip, $4 99 add r0, sl, r3 100 ldmea fp, {sl, fp, sp, pc} 101L(45): 102 .align 2 103L(44): 104 .word _GLOBAL_OFFSET_TABLE_-(L(43)+8) 105 .word callback_receiver(GOTOFF) 106L(fe2): 107 FUNEND(callback_get_receiver) 108#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__ 109 .section .note.GNU-stack,"",%progbits 110#endif 111