diff options
Diffstat (limited to 'sysdeps/powerpc/powerpc32/____longjmp_chk.S')
-rw-r--r-- | sysdeps/powerpc/powerpc32/____longjmp_chk.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/powerpc/powerpc32/____longjmp_chk.S index 510ce5250d..128899a532 100644 --- a/sysdeps/powerpc/powerpc32/____longjmp_chk.S +++ b/sysdeps/powerpc/powerpc32/____longjmp_chk.S @@ -49,8 +49,16 @@ #define CHECK_SP(reg) \ cmplw reg, r1; \ bge+ .Lok; \ + cfi_remember_state; \ + mflr r0; \ + stwu r1,-16(r1); \ + cfi_adjust_cfa_offset (16); \ + stw r0,20(r1); \ + cfi_offset (lr, 4); \ LOAD_ARG; \ bl HIDDEN_JUMPTARGET (__fortify_fail); \ + nop; \ + cfi_restore_state; \ .Lok: #include <__longjmp-common.S> |