mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
/* Mac control information - included as part of trans.h
|
|
It is broken out to allow use with ASM68 files*/
|
|
|
|
/* Control word for computation of transcendentals */
|
|
|
|
|
|
#define ICW (IPC_64 + IRC_NEAR)
|
|
|
|
#define IMCW (IMCW_RC + IMCW_PC)
|
|
|
|
#ifdef SANE
|
|
|
|
#define IMCW_EM 0x001f /* interrupt Exception Masks */
|
|
#define IEM_INVALID 0x0001 /* invalid */
|
|
#define IEM_ZERODIVIDE 0x0008 /* zero divide */
|
|
#define IEM_OVERFLOW 0x0004 /* overflow */
|
|
#define IEM_UNDERFLOW 0x0002 /* underflow */
|
|
#define IEM_INEXACT 0x0010 /* inexact (precision) */
|
|
|
|
|
|
#define IMCW_RC 0x6000 /* Rounding Control */
|
|
#define IRC_CHOP 0x6000 /* chop */
|
|
#define IRC_UP 0x2000 /* up */
|
|
#define IRC_DOWN 0x4000 /* down */
|
|
#define IRC_NEAR 0x0000 /* near */
|
|
|
|
#define IMSW 0x1f00 /* status bits mask */
|
|
#define ISW_INVALID 0x0100 /* invalid */
|
|
#define ISW_ZERODIVIDE 0x0800 /* zero divide */
|
|
#define ISW_OVERFLOW 0x0400 /* overflow */
|
|
#define ISW_UNDERFLOW 0x0200 /* underflow */
|
|
#define ISW_INEXACT 0x1000 /* inexact (precision) */
|
|
|
|
#define IMCW_PC 0x0060 /* Precision Control */
|
|
#define IPC_24 0x0040 /* 24 bits */
|
|
#define IPC_53 0x0020 /* 53 bits */
|
|
#define IPC_64 0x0000 /* 64 bits */
|
|
|
|
#else
|
|
|
|
#define IMCW_EM 0xff00 /* interrupt Exception Masks */
|
|
#define IEM_INVALID 0xe000 /* invalid */
|
|
#define IEM_ZERODIVIDE 0x0400 /* zero divide */
|
|
#define IEM_OVERFLOW 0x1000 /* overflow */
|
|
#define IEM_UNDERFLOW 0x0800 /* underflow */
|
|
#define IEM_INEXACT 0x0300 /* inexact (precision) */
|
|
|
|
|
|
#define IMCW_RC 0x0030 /* Rounding Control */
|
|
#define IRC_CHOP 0x0010 /* chop */
|
|
#define IRC_UP 0x0030 /* up */
|
|
#define IRC_DOWN 0x0020 /* down */
|
|
#define IRC_NEAR 0x0000 /* near */
|
|
|
|
#define ISW_INVALID 0x0080 /* invalid */
|
|
#define ISW_ZERODIVIDE 0x0010 /* zero divide */
|
|
#define ISW_OVERFLOW 0x0040 /* overflow */
|
|
#define ISW_UNDERFLOW 0x0020 /* underflow */
|
|
#define ISW_INEXACT 0x0008 /* inexact (precision) */
|
|
|
|
#define IMCW_PC 0x00c0 /* Precision Control */
|
|
#define IPC_24 0x0040 /* 24 bits */
|
|
#define IPC_53 0x0080 /* 53 bits */
|
|
#define IPC_64 0x0000 /* 64 bits */
|
|
|
|
#endif
|