diff options
Diffstat (limited to 'src/signal')
-rw-r--r-- | src/signal/powerpc64/sigsetjmp.s | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/signal/powerpc64/sigsetjmp.s b/src/signal/powerpc64/sigsetjmp.s index 52ac1d03..410c2831 100644 --- a/src/signal/powerpc64/sigsetjmp.s +++ b/src/signal/powerpc64/sigsetjmp.s @@ -2,29 +2,36 @@ .global __sigsetjmp .type sigsetjmp,%function .type __sigsetjmp,%function - .hidden ___setjmp + .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 + beq- cr7, __setjmp_toc - mflr 5 - std 5, 512(3) - std 16, 512+8+8(3) + mflr 6 + std 6, 512(3) + std 2, 512+16(3) + std 16, 512+24(3) mr 16, 3 - bl ___setjmp + bl __setjmp_toc mr 4, 3 mr 3, 16 ld 5, 512(3) mtlr 5 - ld 16, 512+8+8(3) + ld 2, 512+16(3) + ld 16, 512+24(3) .hidden __sigsetjmp_tail b __sigsetjmp_tail |