#include "asmarm.h" // Generated by gcc 2.6.3 for ARM/RISCiX rfp .req r9 sl .req r10 fp .req r11 ip .req r12 sp .req r13 lr .req r14 pc .req r15 .text .align 0 .global C(__builtin_avcall) DECLARE_FUNCTION(__builtin_avcall) C(__builtin_avcall:) // args = 0, pretend = 0, frame = 1024 // frameC(needed) = 0, current_function_anonymous_args = 0 stmfd sp!, {r4, lr} mov ip, $4 sub sp, sp, $1024 mov r4, r0 ldr r3, [r4, $20] sub r3, r3, $32 rsb r3, r4, r3 mov r0, r3, asr $2 cmp ip, r0 bge L3 add r1, r4, $16 add r2, sp, $16 L5: ldr r3, [r1, $32] add r1, r1, $4 str r3, [r2, $-16] add ip, ip, $1 cmp ip, r0 add r2, r2, $4 blt L5 L3: ldr r0, [r4, $32] ldr r3, [r4, $44] ldr r2, [r4, $40] ldr r1, [r4, $36] mov lr, pc ldr pc, [r4, $0] mov ip, r0 ldr r3, [r4, $12] cmp r3, $1 beq L8 cmp r3, $0 beq L60 cmp r3, $2 beq L61 cmp r3, $3 beq L61 cmp r3, $4 beq L61 cmp r3, $5 beq L62 cmp r3, $6 beq L62 cmp r3, $7 beq L60 cmp r3, $8 beq L60 cmp r3, $9 beq L60 cmp r3, $10 beq L60 ldr r2, [r4, $12] sub r3, r2, $11 cmp r3, $1 bls L63 cmp r2, $13 ldreq r3, [r4, $8] streq r0, [r3, $0] // float beq L8 L31: cmp r2, $14 ldreq r3, [r4, $8] stmeqia r3, {r0, r1} // double beq L8 L33: cmp r2, $15 beq L60 cmp r2, $16 bne L8 ldr r3, [r4, $4] tst r3, $1 beq L38 ldr r3, [r4, $16] cmp r3, $1 ldreq r2, [r4, $8] ldreqb r3, [ip, $0] streqb r3, [r2, $0] beq L8 L39: cmp r3, $2 bne L41 ldr r2, [r4, $8] ldr r3, [ip, $0] // movhi strb r3, [r2, $0] mov r3, r3, asr $8 strb r3, [r2, $1] b L8 L41: cmp r3, $4 ldreq r2, [r4, $8] ldreq r3, [ip, $0] streq r3, [r2, $0] beq L8 L43: cmp r3, $8 bne L45 ldr r2, [r4, $8] ldr r3, [ip, $0] str r3, [r2, $0] ldr r2, [r4, $8] ldr r3, [ip, $4] str r3, [r2, $4] b L8 L45: add r3, r3, $3 mov r1, r3, lsr $2 sub r1, r1, $1 cmp r1, $0 blt L8 L49: ldr r2, [r4, $8] ldr r3, [ip, r1, asl $2] str r3, [r2, r1, asl $2] sub r1, r1, $1 cmp r1, $0 bge L49 b L8 L38: tst r3, $512 beq L8 ldr r3, [r4, $16] cmp r3, $1 bne L53 L61: ldr r3, [r4, $8] strb ip, [r3, $0] b L8 L53: cmp r3, $2 bne L55 L62: ldr r2, [r4, $8] strb ip, [r2, $0] mov r3, ip, asr $8 strb r3, [r2, $1] b L8 L55: cmp r3, $4 bne L57 L60: ldr r3, [r4, $8] str ip, [r3, $0] b L8 L57: cmp r3, $8 bne L8 L63: ldr r3, [r4, $8] str ip, [r3, $0] ldr r3, [r4, $8] str r1, [r3, $4] L8: mov r0, $0 add sp, sp, $1024 ldmfd sp!, {r4, pc}^