Fix #1522
This commit is contained in:
parent
b8817518ae
commit
c3a49766d8
|
@ -320,8 +320,6 @@ static const ARMCPUInfo aarch64_cpus[] = {
|
|||
|
||||
ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
||||
{
|
||||
int i;
|
||||
char *cpu_model = "cortex-a72";
|
||||
ARMCPU *cpu;
|
||||
CPUState *cs;
|
||||
CPUClass *cc;
|
||||
|
@ -331,6 +329,13 @@ ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (uc->cpu_model == INT_MAX) {
|
||||
uc->cpu_model = UC_CPU_AARCH64_A72;
|
||||
} else if (uc->cpu_model >= sizeof(aarch64_cpus)) {
|
||||
free(cpu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cs = (CPUState *)cpu;
|
||||
cc = (CPUClass *)&cpu->cc;
|
||||
cs->cc = cc;
|
||||
|
@ -349,17 +354,8 @@ ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
|||
/* init ARMCPU */
|
||||
arm_cpu_initfn(uc, cs);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) {
|
||||
if (strcmp(cpu_model, aarch64_cpus[i].name) == 0) {
|
||||
if (aarch64_cpus[i].initfn) {
|
||||
aarch64_cpus[i].initfn(uc, cs);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == ARRAY_SIZE(aarch64_cpus)) {
|
||||
free(cpu);
|
||||
return NULL;
|
||||
if (aarch64_cpus[uc->cpu_model].initfn) {
|
||||
aarch64_cpus[uc->cpu_model].initfn(uc, cs);
|
||||
}
|
||||
|
||||
/* postinit ARMCPU */
|
||||
|
|
Loading…
Reference in New Issue