aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Mammedov <imammedo@redhat.com>2016-06-09 19:11:00 +0200
committerEduardo Habkost <ehabkost@redhat.com>2016-07-07 15:24:57 -0300
commitfb02d56e96d553088c5b4267a3c954a3e952a50a (patch)
tree0b234c7db605350612b86524940ab9f8dce5c7a8
parentadae837d40dea7100040136647e3de44898994df (diff)
target-sparc: Use sparc_cpu_parse_features() directly
Make SPARC target use sparc_cpu_parse_features() directly so it won't get in the way of switching other propertified targets to handling features as global properties. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
-rw-r--r--target-sparc/cpu.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c
index 5b74cfcd31..e4089f2074 100644
--- a/target-sparc/cpu.c
+++ b/target-sparc/cpu.c
@@ -101,9 +101,11 @@ static void cpu_sparc_disas_set_info(CPUState *cpu, disassemble_info *info)
#endif
}
+static void sparc_cpu_parse_features(CPUState *cs, char *features,
+ Error **errp);
+
static int cpu_sparc_register(SPARCCPU *cpu, const char *cpu_model)
{
- CPUClass *cc = CPU_GET_CLASS(cpu);
CPUSPARCState *env = &cpu->env;
char *s = g_strdup(cpu_model);
char *featurestr, *name = strtok(s, ",");
@@ -119,7 +121,7 @@ static int cpu_sparc_register(SPARCCPU *cpu, const char *cpu_model)
memcpy(env->def, def, sizeof(*def));
featurestr = strtok(NULL, ",");
- cc->parse_features(CPU(cpu), featurestr, &err);
+ sparc_cpu_parse_features(CPU(cpu), featurestr, &err);
g_free(s);
if (err) {
error_report_err(err);
@@ -840,7 +842,6 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data)
scc->parent_reset = cc->reset;
cc->reset = sparc_cpu_reset;
- cc->parse_features = sparc_cpu_parse_features;
cc->has_work = sparc_cpu_has_work;
cc->do_interrupt = sparc_cpu_do_interrupt;
cc->cpu_exec_interrupt = sparc_cpu_exec_interrupt;