void factor_vm::fp_signal_handler_impl() { /* Clear pending exceptions to avoid getting stuck in a loop */ set_fpu_state(get_fpu_state()); fp_trap_error(signal_fpu_status); }
void ieee_procedure_exit (void *state) { /* Get the flags currently signaling. */ int flags = get_fpu_except_flags (); /* Restore the floating-point state we had on entry. */ set_fpu_state (state); /* And re-raised the flags that were raised since entry. */ set_fpu_except_flags (flags, 0); }
/* Allocates memory (fp_trap_error())*/ void factor_vm::fp_signal_handler_impl() { /* Clear pending exceptions to avoid getting stuck in a loop */ set_fpu_state(get_fpu_state()); general_error(ERROR_FP_TRAP, tag_fixnum(signal_fpu_status), false_object); }