summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2004-07-02 23:20:05 +0000
committerdavidxu <davidxu@FreeBSD.org>2004-07-02 23:20:05 +0000
commit4208ebcb28b596d6c3f5ddd7c02ad3bf69fb657b (patch)
tree808d1bcb7f3be3757755682041eaebf64de5d2bf /lib
parent6294018a208cf7742b1c021a9b75c26962505571 (diff)
downloadFreeBSD-src-4208ebcb28b596d6c3f5ddd7c02ad3bf69fb657b.zip
FreeBSD-src-4208ebcb28b596d6c3f5ddd7c02ad3bf69fb657b.tar.gz
Follow previous change in makecontext. Use %esi to store next ucp
pointer, here we keep orignal %ebp, so we can see where signal handler comes in and interrupt normal code.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/i386/gen/signalcontext.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libc/i386/gen/signalcontext.c b/lib/libc/i386/gen/signalcontext.c
index 28bcfec..877b655 100644
--- a/lib/libc/i386/gen/signalcontext.c
+++ b/lib/libc/i386/gen/signalcontext.c
@@ -69,7 +69,7 @@ __signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
/*
* Set up ucontext_t.
*/
- ucp->uc_mcontext.mc_ebp = ucp->uc_mcontext.mc_esp - sizeof(int);
+ ucp->uc_mcontext.mc_esi = ucp->uc_mcontext.mc_esp - sizeof(int);
ucp->uc_mcontext.mc_esp = (register_t)(intptr_t)p;
ucp->uc_mcontext.mc_eip = (register_t)(intptr_t)_ctx_start;
ucp->uc_mcontext.mc_eflags &= ~PSL_T;
OpenPOWER on IntegriCloud