diff options
Diffstat (limited to 'src/signal/s390x')
-rw-r--r-- | src/signal/s390x/restore.s | 11 | ||||
-rw-r--r-- | src/signal/s390x/sigsetjmp.s | 23 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/signal/s390x/restore.s b/src/signal/s390x/restore.s new file mode 100644 index 0000000..88e33db --- /dev/null +++ b/src/signal/s390x/restore.s @@ -0,0 +1,11 @@ + .global __restore + .hidden __restore + .type __restore,%function +__restore: + svc 119 #__NR_sigreturn + + .global __restore_rt + .hidden __restore_rt + .type __restore_rt,%function +__restore_rt: + svc 173 # __NR_rt_sigreturn diff --git a/src/signal/s390x/sigsetjmp.s b/src/signal/s390x/sigsetjmp.s new file mode 100644 index 0000000..41b1bd9 --- /dev/null +++ b/src/signal/s390x/sigsetjmp.s @@ -0,0 +1,23 @@ + .global sigsetjmp + .global __sigsetjmp + .type sigsetjmp,%function + .type __sigsetjmp,%function + .hidden ___setjmp +sigsetjmp: +__sigsetjmp: + ltgr %r3, %r3 + jz ___setjmp + + stg %r14, 18*8(%r2) + stg %r6, 20*8(%r2) + lgr %r6, %r2 + + brasl %r14, ___setjmp + + lgr %r3, %r2 + lgr %r2, %r6 + lg %r14, 18*8(%r2) + lg %r6, 20*8(%r2) + +.hidden __sigsetjmp_tail + jg __sigsetjmp_tail |