summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/src/signal/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'libc-top-half/musl/src/signal/powerpc')
-rw-r--r--libc-top-half/musl/src/signal/powerpc/restore.s13
-rw-r--r--libc-top-half/musl/src/signal/powerpc/sigsetjmp.s27
2 files changed, 40 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/signal/powerpc/restore.s b/libc-top-half/musl/src/signal/powerpc/restore.s
new file mode 100644
index 0000000..29c8afd
--- /dev/null
+++ b/libc-top-half/musl/src/signal/powerpc/restore.s
@@ -0,0 +1,13 @@
+ .global __restore
+ .hidden __restore
+ .type __restore,%function
+__restore:
+ li 0, 119 #__NR_sigreturn
+ sc
+
+ .global __restore_rt
+ .hidden __restore_rt
+ .type __restore_rt,%function
+__restore_rt:
+ li 0, 172 # __NR_rt_sigreturn
+ sc
diff --git a/libc-top-half/musl/src/signal/powerpc/sigsetjmp.s b/libc-top-half/musl/src/signal/powerpc/sigsetjmp.s
new file mode 100644
index 0000000..152c3fe
--- /dev/null
+++ b/libc-top-half/musl/src/signal/powerpc/sigsetjmp.s
@@ -0,0 +1,27 @@
+ .global sigsetjmp
+ .global __sigsetjmp
+ .type sigsetjmp,%function
+ .type __sigsetjmp,%function
+sigsetjmp:
+__sigsetjmp:
+ cmpwi cr7, 4, 0
+ beq- cr7, 1f
+
+ mflr 5
+ stw 5, 448(3)
+ stw 16, 448+4+8(3)
+ mr 16, 3
+
+.hidden ___setjmp
+ bl ___setjmp
+
+ mr 4, 3
+ mr 3, 16
+ lwz 5, 448(3)
+ mtlr 5
+ lwz 16, 448+4+8(3)
+
+.hidden __sigsetjmp_tail
+ b __sigsetjmp_tail
+
+1: b ___setjmp