aboutsummaryrefslogtreecommitdiff
path: root/target-m68k/cpu.h
diff options
context:
space:
mode:
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 93080cf..3a1a138 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