diff options
author | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-05-26 16:52:21 +0000 |
---|---|---|
committer | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-05-26 16:52:21 +0000 |
commit | 0402f767b5f11ec0efaf6abe50a11487801fc2ef (patch) | |
tree | 39ace1abcc9a63c262d419f8b5e1fb8044ae86e1 /target-m68k/cpu.h | |
parent | 6b3a45ccea29d5e87a1ffa2506b847b5ba96f983 (diff) |
Rework m68k cpu feature flags.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2865 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-m68k/cpu.h')
-rw-r--r-- | target-m68k/cpu.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h index 93080cfe12..3a1a13888b 100644 --- a/target-m68k/cpu.h +++ b/target-m68k/cpu.h @@ -85,6 +85,8 @@ typedef struct CPUM68KState { uint32_t mbar; uint32_t rambar0; + uint32_t features; + /* ??? remove this. */ uint32_t t1; @@ -151,6 +153,23 @@ void m68k_set_irq_level(CPUM68KState *env, int level, uint8_t vector); void do_m68k_semihosting(CPUM68KState *env, int nr); +enum m68k_features { + M68K_FEATURE_CF_ISA_A, + M68K_FEATURE_CF_ISA_B, + M68K_FEATURE_CF_ISA_C, + M68K_FEATURE_CF_FPU, + M68K_FEATURE_CF_MAC, + M68K_FEATURE_CF_EMAC, + M68K_FEATURE_EXT_FULL /* 68020+ full extension word. */ +}; + +static inline int m68k_feature(CPUM68KState *env, int feature) +{ + return (env->features & (1u << feature)) != 0; +} + +void register_m68k_insns (CPUM68KState *env); + #ifdef CONFIG_USER_ONLY /* Linux uses 8k pages. */ #define TARGET_PAGE_BITS 13 |