summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-03-16 11:49:03 +0000
committerRoland McGrath <roland@gnu.org>2006-03-16 11:49:03 +0000
commit3e7e947f6bf0bc21f94e6cef4fd7cd19ff77b9eb (patch)
treea3c6fb99a810c838e446894639f8ca56b0d6261d /sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
parent5c68d401698a58cf7da150d9cce769fa6679ba5f (diff)
downloadglibc-3e7e947f6bf0bc21f94e6cef4fd7cd19ff77b9eb.tar.gz
* sysdeps/powerpc/powerpc32/fpu/fprsave.S: Add cfi_offset for spilling
of non-volatile floating-point registers to the stack (fp14-fp31). * sysdeps/powerpc/powerpc32/gprsave0.S: Add cfi_offset for spilling of non-volatile general-purpose registers to the stack (gpr13-gpr31). * sysdeps/powerpc/powerpc64/dl-trampoline.S: Add cfi_offset for non-volatiles gpr30 - grp31 spilled to the stack. * sysdeps/powerpc/powerpc64/memcpy.S: Add cfi_offset for non-volatile gpr31 spill to the stack. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Add cfi_offset for non-volatile gpr31 spill to the stack. * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Add cfi_offset for non-volatiles gpr28 - grp31 spilled to the stack. * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Add cfi_adjust_cfa_offset when a frame is stacked. * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: (__novec_setcontext) : Add cfi_offset for non-volatile gpr31 spill add LR saved to the stack. Add cfi_adjust_cfa_offset when frame is stacked. (__setcontext) : Add cfi_offset for non-volatile gpr31 spill to the stack. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: (__novec_swapcontext) : Add cfi_offset for non-volatile gpr31 spill add LR saved to the stack. (__swapcontext) : Add cfi_offset for non-volatile gpr31 spill add LR saved to the stack. Add cfi_adjust_cfa_offset when frame is stacked.
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index 5a128606ad..936d641b6b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -35,6 +35,7 @@ ENTRY(__novec_swapcontext)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
std r31,-8(1)
+ cfi_offset(r31,-8)
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -264,6 +265,7 @@ L(nv_do_sigret):
/* If the kernel is not at least 2.4.21 then generate a ENOSYS stub. */
mflr r0
std r0,FRAME_LR_SAVE(r1)
+ cfi_offset(lr,FRAME_LR_SAVE)
stdu r1,-128(r1)
li r3,ENOSYS
bl JUMPTARGET(__syscall_error)
@@ -298,11 +300,14 @@ ENTRY(__swapcontext)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
std r31,-8(1)
+ cfi_offset(r31,-8)
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
stdu r1,-128(r1)
+ cfi_adjust_cfa_offset(128)
std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)