mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-08 20:55:01 +00:00
27 lines
618 B
ArmAsm
27 lines
618 B
ArmAsm
|
# define call_push(x) move $4,x; jal GC_push_one
|
||
|
|
||
|
.text
|
||
|
# Mark from machine registers that are saved by C compiler
|
||
|
.globl GC_push_regs
|
||
|
.ent GC_push_regs
|
||
|
GC_push_regs:
|
||
|
subu $sp,8 ## Need to save only return address
|
||
|
sw $31,4($sp)
|
||
|
.mask 0x80000000,-4
|
||
|
.frame $sp,8,$31
|
||
|
call_push($2)
|
||
|
call_push($3)
|
||
|
call_push($16)
|
||
|
call_push($17)
|
||
|
call_push($18)
|
||
|
call_push($19)
|
||
|
call_push($20)
|
||
|
call_push($21)
|
||
|
call_push($22)
|
||
|
call_push($23)
|
||
|
call_push($30)
|
||
|
lw $31,4($sp)
|
||
|
addu $sp,8
|
||
|
j $31
|
||
|
.end GC_push_regs
|