target/sparc: Use CPU_FEATURE_BIT_* for cpu properties

Use symbols not integer constants for the bit positions.

Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-10-15 17:08:53 -07:00
parent bd7ff659a7
commit de1f52032f
1 changed files with 44 additions and 28 deletions

View File

@ -545,21 +545,22 @@ static const sparc_def_t sparc_defs[] = {
#endif #endif
}; };
/* This must match sparc_cpu_properties[]. */
static const char * const feature_name[] = { static const char * const feature_name[] = {
"float", [CPU_FEATURE_BIT_FLOAT] = "float",
"float128", [CPU_FEATURE_BIT_FLOAT128] = "float128",
"swap", [CPU_FEATURE_BIT_SWAP] = "swap",
"mul", [CPU_FEATURE_BIT_MUL] = "mul",
"div", [CPU_FEATURE_BIT_DIV] = "div",
"flush", [CPU_FEATURE_BIT_FLUSH] = "flush",
"fsqrt", [CPU_FEATURE_BIT_FSQRT] = "fsqrt",
"fmul", [CPU_FEATURE_BIT_FMUL] = "fmul",
"vis1", [CPU_FEATURE_BIT_VIS1] = "vis1",
"vis2", [CPU_FEATURE_BIT_VIS2] = "vis2",
"fsmuld", [CPU_FEATURE_BIT_FSMULD] = "fsmuld",
"hypv", [CPU_FEATURE_BIT_HYPV] = "hypv",
"cmt", [CPU_FEATURE_BIT_CMT] = "cmt",
"gl", [CPU_FEATURE_BIT_GL] = "gl",
}; };
static void print_features(uint32_t features, const char *prefix) static void print_features(uint32_t features, const char *prefix)
@ -835,21 +836,36 @@ static PropertyInfo qdev_prop_nwindows = {
.set = sparc_set_nwindows, .set = sparc_set_nwindows,
}; };
/* This must match feature_name[]. */
static Property sparc_cpu_properties[] = { static Property sparc_cpu_properties[] = {
DEFINE_PROP_BIT("float", SPARCCPU, env.def.features, 0, false), DEFINE_PROP_BIT("float", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("float128", SPARCCPU, env.def.features, 1, false), CPU_FEATURE_BIT_FLOAT, false),
DEFINE_PROP_BIT("swap", SPARCCPU, env.def.features, 2, false), DEFINE_PROP_BIT("float128", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("mul", SPARCCPU, env.def.features, 3, false), CPU_FEATURE_BIT_FLOAT128, false),
DEFINE_PROP_BIT("div", SPARCCPU, env.def.features, 4, false), DEFINE_PROP_BIT("swap", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("flush", SPARCCPU, env.def.features, 5, false), CPU_FEATURE_BIT_SWAP, false),
DEFINE_PROP_BIT("fsqrt", SPARCCPU, env.def.features, 6, false), DEFINE_PROP_BIT("mul", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("fmul", SPARCCPU, env.def.features, 7, false), CPU_FEATURE_BIT_MUL, false),
DEFINE_PROP_BIT("vis1", SPARCCPU, env.def.features, 8, false), DEFINE_PROP_BIT("div", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("vis2", SPARCCPU, env.def.features, 9, false), CPU_FEATURE_BIT_DIV, false),
DEFINE_PROP_BIT("fsmuld", SPARCCPU, env.def.features, 10, false), DEFINE_PROP_BIT("flush", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("hypv", SPARCCPU, env.def.features, 11, false), CPU_FEATURE_BIT_FLUSH, false),
DEFINE_PROP_BIT("cmt", SPARCCPU, env.def.features, 12, false), DEFINE_PROP_BIT("fsqrt", SPARCCPU, env.def.features,
DEFINE_PROP_BIT("gl", SPARCCPU, env.def.features, 13, false), CPU_FEATURE_BIT_FSQRT, false),
DEFINE_PROP_BIT("fmul", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_FMUL, false),
DEFINE_PROP_BIT("vis1", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_VIS1, false),
DEFINE_PROP_BIT("vis2", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_VIS2, false),
DEFINE_PROP_BIT("fsmuld", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_FSMULD, false),
DEFINE_PROP_BIT("hypv", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_HYPV, false),
DEFINE_PROP_BIT("cmt", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_CMT, false),
DEFINE_PROP_BIT("gl", SPARCCPU, env.def.features,
CPU_FEATURE_BIT_GL, false),
DEFINE_PROP_UNSIGNED("iu-version", SPARCCPU, env.def.iu_version, 0, DEFINE_PROP_UNSIGNED("iu-version", SPARCCPU, env.def.iu_version, 0,
qdev_prop_uint64, target_ulong), qdev_prop_uint64, target_ulong),
DEFINE_PROP_UINT32("fpu-version", SPARCCPU, env.def.fpu_version, 0), DEFINE_PROP_UINT32("fpu-version", SPARCCPU, env.def.fpu_version, 0),