diff options
author | davidxu <davidxu@FreeBSD.org> | 2004-07-02 23:20:05 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2004-07-02 23:20:05 +0000 |
commit | 4208ebcb28b596d6c3f5ddd7c02ad3bf69fb657b (patch) | |
tree | 808d1bcb7f3be3757755682041eaebf64de5d2bf /lib/libc/i386/gen | |
parent | 6294018a208cf7742b1c021a9b75c26962505571 (diff) | |
download | FreeBSD-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/libc/i386/gen')
-rw-r--r-- | lib/libc/i386/gen/signalcontext.c | 2 |
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; |