aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorGreg McGary <greg@mcgary.org>2000-08-03 21:39:16 +0000
committerGreg McGary <greg@mcgary.org>2000-08-03 21:39:16 +0000
commiteb48f491b15ad01be840db3f35b5fe33ca2b8fe2 (patch)
treec59a9e4a247af05d7f525c71deaa9ef8ca6ae903 /sysdeps
parent7f6f3e353249d97ffd24e947b08e35507a33f761 (diff)
downloadglibc-eb48f491b15ad01be840db3f35b5fe33ca2b8fe2.zip
glibc-eb48f491b15ad01be840db3f35b5fe33ca2b8fe2.tar.gz
glibc-eb48f491b15ad01be840db3f35b5fe33ca2b8fe2.tar.bz2
* sysdeps/i386/setjmp.S (__sigsetjmp): Pop our
frame pointer early so that we save caller's frame pointer. * sysdeps/i386/elf/setjmp.S: Likewise. * sysdeps/i386/setjmp.S (__sigsetjmp): Pop our frame pointer early so that we save caller's frame pointer. * sysdeps/i386/elf/setjmp.S: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/elf/setjmp.S4
-rw-r--r--sysdeps/i386/setjmp.S4
2 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/i386/elf/setjmp.S b/sysdeps/i386/elf/setjmp.S
index 1d600a4..bf03e65 100644
--- a/sysdeps/i386/elf/setjmp.S
+++ b/sysdeps/i386/elf/setjmp.S
@@ -57,13 +57,13 @@ ENTRY (BP_SYM (__sigsetjmp))
movl %ebx, (JB_BX*4)(%eax)
movl %esi, (JB_SI*4)(%eax)
movl %edi, (JB_DI*4)(%eax)
- movl %ebp, (JB_BP*4)(%eax)
leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return. */
movl %ecx, (JB_SP*4)(%eax)
movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
movl %ecx, (JB_PC*4)(%eax)
-
LEAVE /* pop frame pointer to prepare for tail-call. */
+ movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
+
/* Make a tail call to __sigjmp_save; it takes the same args. */
#ifdef PIC
/* We cannot use the PLT, because it requires that %ebx be set, but
diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
index 25b7ac8..673b7ab 100644
--- a/sysdeps/i386/setjmp.S
+++ b/sysdeps/i386/setjmp.S
@@ -44,13 +44,13 @@ ENTRY (BP_SYM (__sigsetjmp))
movl %ebx, (JB_BX*4)(%eax)
movl %esi, (JB_SI*4)(%eax)
movl %edi, (JB_DI*4)(%eax)
- movl %ebp, (JB_BP*4)(%eax)
leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return. */
movl %ecx, (JB_SP*4)(%eax)
movl PCOFF(%esp), %ecx /* Save PC we are returning to now. */
movl %ecx, (JB_PC*4)(%eax)
-
LEAVE /* pop frame pointer to prepare for tail-call. */
+ movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer. */
+
/* Make a tail call to __sigjmp_save; it takes the same args. */
#ifdef PIC
/* We cannot use the PLT, because it requires that %ebx be set, but