diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc64/____longjmp_chk.S')
-rw-r--r-- | sysdeps/powerpc/powerpc64/____longjmp_chk.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/powerpc/powerpc64/____longjmp_chk.S index 56549021aa..f1b7d85e46 100644 --- a/sysdeps/powerpc/powerpc64/____longjmp_chk.S +++ b/sysdeps/powerpc/powerpc64/____longjmp_chk.S @@ -32,8 +32,16 @@ #define CHECK_SP(reg) \ cmpld reg, r1; \ bge+ .Lok; \ + cfi_remember_state; \ + mflr r0; \ + std r0,16(r1); \ + stdu r1,-112(r1); \ + cfi_adjust_cfa_offset (112); \ + cfi_offset (lr, 16); \ ld r3,.LC1@toc(2); \ bl HIDDEN_JUMPTARGET (__fortify_fail); \ + nop; \ + cfi_restore_state; \ .Lok: #include <__longjmp-common.S> |