diff options
Diffstat (limited to 'libc-top-half/musl/src/setjmp/s390x')
-rw-r--r-- | libc-top-half/musl/src/setjmp/s390x/longjmp.s | 23 | ||||
-rw-r--r-- | libc-top-half/musl/src/setjmp/s390x/setjmp.s | 25 |
2 files changed, 48 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/setjmp/s390x/longjmp.s b/libc-top-half/musl/src/setjmp/s390x/longjmp.s new file mode 100644 index 0000000..b2310f8 --- /dev/null +++ b/libc-top-half/musl/src/setjmp/s390x/longjmp.s @@ -0,0 +1,23 @@ + .global _longjmp + .global longjmp + .type _longjmp,@function + .type longjmp,@function +_longjmp: +longjmp: + +1: + lmg %r6, %r15, 0(%r2) + + ld %f8, 10*8(%r2) + ld %f9, 11*8(%r2) + ld %f10, 12*8(%r2) + ld %f11, 13*8(%r2) + ld %f12, 14*8(%r2) + ld %f13, 15*8(%r2) + ld %f14, 16*8(%r2) + ld %f15, 17*8(%r2) + + ltgr %r2, %r3 + bnzr %r14 + lhi %r2, 1 + br %r14 diff --git a/libc-top-half/musl/src/setjmp/s390x/setjmp.s b/libc-top-half/musl/src/setjmp/s390x/setjmp.s new file mode 100644 index 0000000..afae1b6 --- /dev/null +++ b/libc-top-half/musl/src/setjmp/s390x/setjmp.s @@ -0,0 +1,25 @@ + .global ___setjmp + .hidden ___setjmp + .global __setjmp + .global _setjmp + .global setjmp + .type __setjmp,@function + .type _setjmp,@function + .type setjmp,@function +___setjmp: +__setjmp: +_setjmp: +setjmp: + stmg %r6, %r15, 0(%r2) + + std %f8, 10*8(%r2) + std %f9, 11*8(%r2) + std %f10, 12*8(%r2) + std %f11, 13*8(%r2) + std %f12, 14*8(%r2) + std %f13, 15*8(%r2) + std %f14, 16*8(%r2) + std %f15, 17*8(%r2) + + lghi %r2, 0 + br %r14 |