58 lines
884 B
ArmAsm
58 lines
884 B
ArmAsm
.text
|
|
.align 8
|
|
.globl foo
|
|
.type foo, @function
|
|
foo:
|
|
.PROC
|
|
.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
|
|
.ENTRY
|
|
copy %r3,%r1
|
|
copy %r30,%r3
|
|
stwm %r1,64(%r30)
|
|
stw %r26,-36(%r3)
|
|
ldw -36(%r3),%r19
|
|
copy %r19,%r28
|
|
ldo 64(%r3),%r30
|
|
ldwm -64(%r30),%r3
|
|
bv,n %r0(%r2)
|
|
.EXIT
|
|
.PROCEND
|
|
|
|
.globl bar
|
|
.type bar, @function
|
|
bar:
|
|
.PROC
|
|
.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
|
|
.ENTRY
|
|
copy %r3,%r1
|
|
copy %r30,%r3
|
|
stwm %r1,64(%r30)
|
|
ldo 64(%r3),%r30
|
|
ldwm -64(%r30),%r3
|
|
bv,n %r0(%r2)
|
|
.EXIT
|
|
.PROCEND
|
|
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
.PROC
|
|
.CALLINFO FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
|
|
.ENTRY
|
|
stw %r2,-20(%r30)
|
|
copy %r3,%r1
|
|
copy %r30,%r3
|
|
stwm %r1,64(%r30)
|
|
stw %r26,-36(%r3)
|
|
stw %r25,-40(%r3)
|
|
ldw -36(%r3),%r26
|
|
bl foo,%r2
|
|
nop
|
|
copy %r28,%r19
|
|
copy %r19,%r28
|
|
ldw -20(%r3),%r2
|
|
ldo 64(%r3),%r30
|
|
ldwm -64(%r30),%r3
|
|
bv,n %r0(%r2)
|
|
.EXIT
|
|
.PROCEND
|