diff options
Diffstat (limited to 'libc-top-half/musl/src/signal/powerpc64/sigsetjmp.s')
-rw-r--r-- | libc-top-half/musl/src/signal/powerpc64/sigsetjmp.s | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/signal/powerpc64/sigsetjmp.s b/libc-top-half/musl/src/signal/powerpc64/sigsetjmp.s new file mode 100644 index 0000000..410c283 --- /dev/null +++ b/libc-top-half/musl/src/signal/powerpc64/sigsetjmp.s @@ -0,0 +1,37 @@ + .global sigsetjmp + .global __sigsetjmp + .type sigsetjmp,%function + .type __sigsetjmp,%function + .hidden __setjmp_toc +sigsetjmp: +__sigsetjmp: + addis 2, 12, .TOC.-__sigsetjmp@ha + addi 2, 2, .TOC.-__sigsetjmp@l + ld 5, 24(1) # load from the TOC slot in the caller's stack frame + b 1f + + .localentry sigsetjmp,.-sigsetjmp + .localentry __sigsetjmp,.-__sigsetjmp + mr 5, 2 + +1: + cmpwi cr7, 4, 0 + beq- cr7, __setjmp_toc + + mflr 6 + std 6, 512(3) + std 2, 512+16(3) + std 16, 512+24(3) + mr 16, 3 + + bl __setjmp_toc + + mr 4, 3 + mr 3, 16 + ld 5, 512(3) + mtlr 5 + ld 2, 512+16(3) + ld 16, 512+24(3) + +.hidden __sigsetjmp_tail + b __sigsetjmp_tail |