aboutsummaryrefslogtreecommitdiff
path: root/target-m68k/cpu.h
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2007-05-26 16:52:21 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2007-05-26 16:52:21 +0000
commit0402f767b5f11ec0efaf6abe50a11487801fc2ef (patch)
tree39ace1abcc9a63c262d419f8b5e1fb8044ae86e1 /target-m68k/cpu.h
parent6b3a45ccea29d5e87a1ffa2506b847b5ba96f983 (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.h19
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