1
2
3
4
5
6
7
8
9
10 #ifndef _EXCEPTION_H_
11 #define _EXCEPTION_H_
12
13 #ifdef __ASSEMBLY__
14 #define Const_(x) $##x
15 #else
16 #define Const_(x) x
17 #endif
18
19 #ifndef SW_C1
20 #include "fpu_emu.h"
21 #endif
22
23 #define FPU_BUSY Const_(0x8000)
24 #define EX_ErrorSummary Const_(0x0080)
25
26 #define EX_INTERNAL Const_(0x8000)
27 #define EX_StackOver Const_(0x0041|SW_C1)
28 #define EX_StackUnder Const_(0x0041)
29
30 #define EX_Precision Const_(0x0020)
31 #define EX_Underflow Const_(0x0010)
32 #define EX_Overflow Const_(0x0008)
33 #define EX_ZeroDiv Const_(0x0004)
34 #define EX_Denormal Const_(0x0002)
35 #define EX_Invalid Const_(0x0001)
36
37 #define PRECISION_LOST_UP Const_((EX_Precision | SW_C1))
38 #define PRECISION_LOST_DOWN Const_(EX_Precision)
39
40 #ifndef __ASSEMBLY__
41
42 #ifdef DEBUG
43 #define EXCEPTION(x) { printk("exception in %s at line %d\n", \
44 __FILE__, __LINE__); FPU_exception(x); }
45 #else
46 #define EXCEPTION(x) FPU_exception(x)
47 #endif
48
49 #endif
50
51 #endif