60 lines
893 B
ArmAsm
60 lines
893 B
ArmAsm
|
.LEVEL 1.1
|
||
|
.text
|
||
|
.align 4
|
||
|
.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
|