#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}^