a41a0e28c2
Not hooked up to the build yet.
37 lines
655 B
ArmAsm
37 lines
655 B
ArmAsm
#
|
|
# arch/s390x/setjmp.S
|
|
#
|
|
# setjmp/longjmp for the s390x architecture
|
|
#
|
|
|
|
.text
|
|
.align 4
|
|
.globl setjmp
|
|
.type setjmp, @function
|
|
setjmp:
|
|
stmg %r6,%r15,0(%r2) # save all general registers
|
|
std %f1,80(%r2) # save fp registers f4 and f6
|
|
std %f3,88(%r2)
|
|
std %f5,96(%r2)
|
|
std %f7,104(%r2)
|
|
lghi %r2,0 # return 0
|
|
br %r14
|
|
|
|
.size setjmp,.-setjmp
|
|
|
|
.text
|
|
.align 4
|
|
.globl longjmp
|
|
.type longjmp, @function
|
|
longjmp:
|
|
lgr %r1,%r2 # jmp_buf
|
|
lgr %r2,%r3 # return value
|
|
ld %f7,104(%r1) # restore all saved registers
|
|
ld %f5,96(%r1)
|
|
ld %f3,88(%r1)
|
|
ld %f1,80(%r1)
|
|
lmg %r6,%r15,0(%r1)
|
|
br %r14 # return to restored address
|
|
|
|
.size longjmp,.-longjmp
|