1
2
3
4
5
6
7
8
9 #ifndef _EXCEPTION_H_
10 #define _EXCEPTION_H_
11
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 SW_C1
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
38 #define PRECISION_LOST_UP Const_((EX_Precision | SW_C1))
39 #define PRECISION_LOST_DOWN Const_(EX_Precision)
40
41
42 #ifndef __ASSEMBLY__
43
44 #ifdef DEBUG
45 #define EXCEPTION(x) { printk("exception in %s at line %d\n", \
46 __FILE__, __LINE__); exception(x); }
47 #else
48 #define EXCEPTION(x) exception(x)
49 #endif
50
51 #endif __ASSEMBLY__
52
53 #endif _EXCEPTION_H_