diff options
Diffstat (limited to 'src/signal')
-rw-r--r-- | src/signal/ppc/restore.S | 13 | ||||
-rw-r--r-- | src/signal/ppc/sigsetjmp.S | 12 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/signal/ppc/restore.S b/src/signal/ppc/restore.S new file mode 100644 index 00000000..50887e91 --- /dev/null +++ b/src/signal/ppc/restore.S @@ -0,0 +1,13 @@ +#include <bits/asm.h> +#include <bits/syscall.h> + .global __restore + .type __restore,@function +__restore: + li r0, __NR_sigreturn + sc + + .global __restore_rt + .type __restore_rt,@function +__restore_rt: + li r0, __NR_rt_sigreturn + sc diff --git a/src/signal/ppc/sigsetjmp.S b/src/signal/ppc/sigsetjmp.S new file mode 100644 index 00000000..527ef8e4 --- /dev/null +++ b/src/signal/ppc/sigsetjmp.S @@ -0,0 +1,12 @@ +#include <bits/asm.h> + .global sigsetjmp + .type sigsetjmp,@function +sigsetjmp: + lwz r4, 64*4-2*4(r3) // Second last long. + cmpi r4, 0, r4, 0 + bne r4, 1f + addi r5, r3, 64*4-1*4 // Address of last long. + li r4, 0 + li r3, 2 + bl sigprocmask +1: b setjmp |