Changes: Edwin Steiner
- $Id: md.c 8123 2007-06-20 23:50:55Z michi $
+ $Id: md.c 8178 2007-07-05 11:13:20Z michi $
*/
void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p)
{
+ stackframeinfo sfi;
ucontext_t *_uc;
mcontext_t *_mc;
u1 *pv;
type = EXCEPTION_HARDWARE_NULLPOINTER;
val = 0;
- e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val);
+ e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val, &sfi);
_mc->gregs[REG_ITMP2_XPC] = (ptrint) xpc;
_mc->gregs[REG_ITMP1_XPTR] = (ptrint) e;
}
void md_signal_handler_sigill(int sig, siginfo_t *siginfo, void *_p) {
+ stackframeinfo sfi;
ucontext_t *_uc;
mcontext_t *_mc;
u1 *xpc;
sp = (u1 *)_mc->gregs[REG_SP];
val = (ptrint)_mc->gregs[reg];
- e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val);
+ e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val, &sfi);
_mc->gregs[REG_ITMP1_XPTR] = (ptrint)e;
_mc->gregs[REG_ITMP2_XPC] = (ptrint)xpc;
void md_signal_handler_sigfpe(int sig, siginfo_t *siginfo, void *_p)
{
+ stackframeinfo sfi;
ucontext_t *_uc;
mcontext_t *_mc;
u1 *pv;
type = EXCEPTION_HARDWARE_ARITHMETIC;
val = 0;
- e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val);
+ e = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val, &sfi);
_mc->gregs[REG_ITMP1_XPTR] = (ptrint)e;
_mc->gregs[REG_ITMP2_XPC] = (ptrint)xpc;