diff options
author | Laurent Vivier <laurent@vivier.eu> | 2017-06-20 22:51:18 +0200 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2017-06-21 22:10:29 +0200 |
commit | f83311e4764f1f25a8abdec2b32c64483be1759b (patch) | |
tree | fa45a69dfb46f430d10ed6ff2a3e8b3cc257fc74 /target/m68k/cpu.h | |
parent | f4a6ce5155aab2a7ed7b9032a72187b37b3bfffe (diff) |
target-m68k: use floatx80 internally
Coldfire uses float64, but 680x0 use floatx80.
This patch introduces the use of floatx80 internally
and enables 680x0 80bits FPU.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Message-Id: <20170620205121.26515-4-laurent@vivier.eu>
Diffstat (limited to 'target/m68k/cpu.h')
-rw-r--r-- | target/m68k/cpu.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 384ec5dc4a..beb8ebc88b 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -55,8 +55,15 @@ #define EXCP_UNINITIALIZED 15 #define EXCP_TRAP0 32 /* User trap #0. */ #define EXCP_TRAP15 47 /* User trap #15. */ +#define EXCP_FP_BSUN 48 /* Branch Set on Unordered */ +#define EXCP_FP_INEX 49 /* Inexact result */ +#define EXCP_FP_DZ 50 /* Divide by Zero */ +#define EXCP_FP_UNFL 51 /* Underflow */ +#define EXCP_FP_OPERR 52 /* Operand Error */ +#define EXCP_FP_OVFL 53 /* Overflow */ +#define EXCP_FP_SNAN 54 /* Signaling Not-A-Number */ +#define EXCP_FP_UNIMP 55 /* Unimplemented Data type */ #define EXCP_UNSUPPORTED 61 -#define EXCP_ICE 13 #define EXCP_RTE 0x100 #define EXCP_HALT_INSN 0x101 @@ -64,6 +71,8 @@ #define NB_MMU_MODES 2 #define TARGET_INSN_START_EXTRA_WORDS 1 +typedef CPU_LDoubleU FPReg; + typedef struct CPUM68KState { uint32_t dregs[8]; uint32_t aregs[8]; @@ -82,8 +91,8 @@ typedef struct CPUM68KState { uint32_t cc_c; /* either 0/1, unused, or computed from cc_n and cc_v */ uint32_t cc_z; /* == 0 or unused */ - float64 fregs[8]; - float64 fp_result; + FPReg fregs[8]; + FPReg fp_result; uint32_t fpcr; uint32_t fpsr; float_status fp_status; |