fpe signals working on unix again
parent
8049b441c2
commit
2cf2dab48e
|
@ -174,7 +174,7 @@ void misc_signal_handler(int signal, siginfo_t *siginfo, void *uap)
|
|||
SIGNAL_VM_PTR()->misc_signal_handler(signal,siginfo,uap);
|
||||
}
|
||||
|
||||
void fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap)
|
||||
void factorvm::fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap)
|
||||
{
|
||||
signal_number = signal;
|
||||
signal_callstack_top = uap_stack_pointer(uap);
|
||||
|
@ -182,8 +182,13 @@ void fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap)
|
|||
uap_clear_fpu_status(uap);
|
||||
UAP_PROGRAM_COUNTER(uap) =
|
||||
(siginfo->si_code == FPE_INTDIV || siginfo->si_code == FPE_INTOVF)
|
||||
? (cell)misc_signal_handler_impl
|
||||
: (cell)fp_signal_handler_impl;
|
||||
? (cell)factor::misc_signal_handler_impl
|
||||
: (cell)factor::fp_signal_handler_impl;
|
||||
}
|
||||
|
||||
void fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap)
|
||||
{
|
||||
SIGNAL_VM_PTR()->fpe_signal_handler(signal, siginfo, uap);
|
||||
}
|
||||
|
||||
static void sigaction_safe(int signum, const struct sigaction *act, struct sigaction *oldact)
|
||||
|
|
|
@ -602,6 +602,7 @@ struct factorvm : factorvmdata {
|
|||
#else // UNIX
|
||||
void memory_signal_handler(int signal, siginfo_t *siginfo, void *uap);
|
||||
void misc_signal_handler(int signal, siginfo_t *siginfo, void *uap);
|
||||
void fpe_signal_handler(int signal, siginfo_t *siginfo, void *uap);
|
||||
stack_frame *uap_stack_pointer(void *uap);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue