43 lines
715 B
ArmAsm
43 lines
715 B
ArmAsm
.global __longjmp
|
|
.global _longjmp
|
|
.global longjmp
|
|
.type __longjmp, %function
|
|
.type _longjmp, %function
|
|
.type longjmp, %function
|
|
__longjmp:
|
|
_longjmp:
|
|
longjmp:
|
|
ld s0, 0(a0)
|
|
ld s1, 8(a0)
|
|
ld s2, 16(a0)
|
|
ld s3, 24(a0)
|
|
ld s4, 32(a0)
|
|
ld s5, 40(a0)
|
|
ld s6, 48(a0)
|
|
ld s7, 56(a0)
|
|
ld s8, 64(a0)
|
|
ld s9, 72(a0)
|
|
ld s10, 80(a0)
|
|
ld s11, 88(a0)
|
|
ld sp, 96(a0)
|
|
ld ra, 104(a0)
|
|
|
|
#ifndef __riscv_float_abi_soft
|
|
fld fs0, 112(a0)
|
|
fld fs1, 120(a0)
|
|
fld fs2, 128(a0)
|
|
fld fs3, 136(a0)
|
|
fld fs4, 144(a0)
|
|
fld fs5, 152(a0)
|
|
fld fs6, 160(a0)
|
|
fld fs7, 168(a0)
|
|
fld fs8, 176(a0)
|
|
fld fs9, 184(a0)
|
|
fld fs10, 192(a0)
|
|
fld fs11, 200(a0)
|
|
#endif
|
|
|
|
seqz a0, a1
|
|
add a0, a0, a1
|
|
ret
|