/* Copyright Greg Novak, released to the public domain */
/* x87 refers to the usual floating point unit. SSE stands for
streaming simd extensions and presumably an optimizing compiler
will try to put some of your floating point instructions there
instead of the usual x87 unit. You may run into problems with
imprecise exceptions, where the processor is not left in a
consistent state after the error. I don't know what to do about
this, but presumably there's something. Let me know if you
have a suggestion. */
/* Handle all exceptions at once */
void enable_all_exceptions(void);
void disable_all_exceptions(void);
/* En/disable individual exceptions */
void enable_x87_invalid_operation_exception(void);
void enable_x87_divide_by_zero_exception(void);
void enable_x87_denormalized_operand_exception(void);
void enable_x87_numeric_overflow_exception(void);
void enable_x87_numeric_underflow_exception(void);
void enable_x87_inexact_result_exception(void);
void disable_x87_invalid_operation_exception(void);
void disable_x87_divide_by_zero_exception(void);
void disable_x87_denormalized_operand_exception(void);
void disable_x87_numeric_overflow_exception(void);
void disable_x87_numeric_underflow_exception(void);
void disable_x87_inexact_result_exception(void);
void enable_sse_invalid_operation_exception(void);
void enable_sse_divide_by_zero_exception(void);
void enable_sse_denormalized_operand_exception(void);
void enable_sse_numeric_overflow_exception(void);
void enable_sse_numeric_underflow_exception(void);
void enable_sse_inexact_result_exception(void);
void disable_sse_invalid_operation_exception(void);
void disable_sse_divide_by_zero_exception(void);
void disable_sse_denormalized_operand_exception(void);
void disable_sse_numeric_overflow_exception(void);
void disable_sse_numeric_underflow_exception(void);
void disable_sse_inexact_result_exception(void);
/* low-level routines to read+write status registers */
short read_x87_control_register(void);
void write_x87_control_register(short cw);
int read_sse_control_register(void);
void write_sse_control_register(int);
Answers/Code/IntelFloatingPointExceptionsDotH (last edited 2007-09-12 23:31:19 by GregNovak)