30 lines
432 B
ArmAsm
30 lines
432 B
ArmAsm
.global __cp_begin
|
|
.hidden __cp_begin
|
|
.global __cp_end
|
|
.hidden __cp_end
|
|
.global __cp_cancel
|
|
.hidden __cp_cancel
|
|
.hidden __cancel
|
|
.global __syscall_cp_asm
|
|
.hidden __syscall_cp_asm
|
|
.type __syscall_cp_asm, %function
|
|
__syscall_cp_asm:
|
|
__cp_begin:
|
|
lw t0, 0(a0)
|
|
bnez t0, __cp_cancel
|
|
|
|
mv t0, a1
|
|
mv a0, a2
|
|
mv a1, a3
|
|
mv a2, a4
|
|
mv a3, a5
|
|
mv a4, a6
|
|
mv a5, a7
|
|
ld a6, 0(sp)
|
|
mv a7, t0
|
|
ecall
|
|
__cp_end:
|
|
ret
|
|
__cp_cancel:
|
|
tail __cancel
|