diff options
Diffstat (limited to 'libc/sysdeps/powerpc/powerpc64/__longjmp-common.S')
-rw-r--r-- | libc/sysdeps/powerpc/powerpc64/__longjmp-common.S | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libc/sysdeps/powerpc/powerpc64/__longjmp-common.S b/libc/sysdeps/powerpc/powerpc64/__longjmp-common.S index 19b2849c0..1be1f8f3b 100644 --- a/libc/sysdeps/powerpc/powerpc64/__longjmp-common.S +++ b/libc/sysdeps/powerpc/powerpc64/__longjmp-common.S @@ -107,12 +107,22 @@ L(aligned_restore_vmx): lvx v31,0,r6 L(no_vmx): #endif -#ifdef PTR_DEMANGLE +#if defined PTR_DEMANGLE || defined CHECK_SP ld r22,(JB_GPR1*8)(r3) - PTR_DEMANGLE3 (r1, r22, r25) #else ld r1,(JB_GPR1*8)(r3) #endif +#ifdef PTR_DEMANGLE +# ifdef CHECK_SP + PTR_DEMANGLE3 (r22, r22, r25) +# else + PTR_DEMANGLE3 (r1, r22, r25) +# endif +#endif +#ifdef CHECK_SP + CHECK_SP (r22) + mr r1,r22 +#endif ld r2,(JB_GPR2*8)(r3) ld r0,(JB_LR*8)(r3) ld r14,((JB_GPRS+0)*8)(r3) |