@@ -574,6 +574,8 @@ enum m68k_features {
M68K_FEATURE_MOVEFROMSR_PRIV,
/* Exception frame with format+vector (from 68010) */
M68K_FEATURE_EXCEPTION_FORMAT_VEC,
+ /* FPU supports packed decimal real format */
+ M68K_FEATURE_FPU_PACKED_DECIMAL,
};
static inline bool m68k_feature(CPUM68KState *env, int feature)
@@ -202,6 +202,7 @@ static void m68020_cpu_initfn(Object *obj)
m68k_set_feature(env, M68K_FEATURE_MSP);
m68k_set_feature(env, M68K_FEATURE_UNALIGNED_DATA);
m68k_set_feature(env, M68K_FEATURE_TRAPCC);
+ m68k_set_feature(env, M68K_FEATURE_FPU_PACKED_DECIMAL);
}
/*
@@ -244,6 +245,7 @@ static void m68040_cpu_initfn(Object *obj)
m68030_cpu_initfn(obj);
m68k_unset_feature(env, M68K_FEATURE_M68030);
+ m68k_unset_feature(env, M68K_FEATURE_FPU_PACKED_DECIMAL);
m68k_set_feature(env, M68K_FEATURE_M68040);
}