about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386/setcontext.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/setcontext.S')
-rw-r--r--sysdeps/unix/sysv/linux/i386/setcontext.S11
1 files changed, 4 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/setcontext.S b/sysdeps/unix/sysv/linux/i386/setcontext.S
index b4b5c0298c..f042d80bf4 100644
--- a/sysdeps/unix/sysv/linux/i386/setcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/setcontext.S
@@ -65,22 +65,19 @@ ENTRY(__setcontext)
 	cfi_offset (esi, oESI)
 	cfi_offset (ebp, oEBP)
 	cfi_offset (ebx, oEBX)
-	cfi_offset (edx, oEDX)
-	cfi_offset (ecx, oECX)
 	movl	oESP(%eax), %esp
 
 	/* Push the return address on the new stack so we can return there.  */
 	pushl	%ecx
 
-	/* Load the values of all the 32-bit registers (except ESP).
-	   Since we are loading from EAX, it must be last.  */
+	/* Load the values of all the preserved registers (except ESP).  */
 	movl	oEDI(%eax), %edi
 	movl	oESI(%eax), %esi
 	movl	oEBP(%eax), %ebp
 	movl	oEBX(%eax), %ebx
-	movl	oEDX(%eax), %edx
-	movl	oECX(%eax), %ecx
-	movl	oEAX(%eax), %eax
+
+	/* All done, return 0 for success.  */
+	xorl	%eax, %eax
 
 	/* End FDE here, we fall into another context.  */
 	cfi_endproc