106 lines
2.2 KiB
ArmAsm
106 lines
2.2 KiB
ArmAsm
|
.csect
|
||
|
.set r0,0
|
||
|
.set r1,1
|
||
|
.set r2,2
|
||
|
.set r3,3
|
||
|
.set r4,4
|
||
|
.set r5,5
|
||
|
.set r6,6
|
||
|
.set r7,7
|
||
|
.set r8,8
|
||
|
.set r9,9
|
||
|
.set r10,10
|
||
|
.set r11,11
|
||
|
.set r12,12
|
||
|
.set r13,13
|
||
|
.set r14,14
|
||
|
.set r15,15
|
||
|
.set r16,16
|
||
|
.set r17,17
|
||
|
.set r18,18
|
||
|
.set r19,19
|
||
|
.set r20,20
|
||
|
.set r21,21
|
||
|
.set r22,22
|
||
|
.set r23,23
|
||
|
.set r24,24
|
||
|
.set r25,25
|
||
|
.set r26,26
|
||
|
.set r27,27
|
||
|
.set r28,28
|
||
|
.set r29,29
|
||
|
.set r30,30
|
||
|
.set r31,31
|
||
|
|
||
|
# Mark from machine registers that are saved by C compiler
|
||
|
.globl .GC_push_regs
|
||
|
.GC_push_regs:
|
||
|
.extern .GC_push_one
|
||
|
stu r1,-64(r1) # reserve stack frame
|
||
|
mflr r0 # save link register
|
||
|
st r0,0x48(r1)
|
||
|
oril r3,r2,0x0 # mark from r2
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r13,0x0 # mark from r13-r31
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r14,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r15,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r16,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r17,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r18,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r19,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r20,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r21,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r22,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r23,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r24,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r25,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r26,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r27,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r28,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r29,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r30,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
oril r3,r31,0x0
|
||
|
bl .GC_push_one
|
||
|
cror 15,15,15
|
||
|
l r0,0x48(r1)
|
||
|
mtlr r0
|
||
|
ai r1,r1,64
|
||
|
br
|