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)
|
ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
char *cpu_model = "cortex-a72";
|
|
||||||
ARMCPU *cpu;
|
ARMCPU *cpu;
|
||||||
CPUState *cs;
|
CPUState *cs;
|
||||||
CPUClass *cc;
|
CPUClass *cc;
|
||||||
|
@ -331,6 +329,13 @@ ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
||||||
return NULL;
|
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;
|
cs = (CPUState *)cpu;
|
||||||
cc = (CPUClass *)&cpu->cc;
|
cc = (CPUClass *)&cpu->cc;
|
||||||
cs->cc = cc;
|
cs->cc = cc;
|
||||||
|
@ -349,17 +354,8 @@ ARMCPU *cpu_aarch64_init(struct uc_struct *uc)
|
||||||
/* init ARMCPU */
|
/* init ARMCPU */
|
||||||
arm_cpu_initfn(uc, cs);
|
arm_cpu_initfn(uc, cs);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(aarch64_cpus); i++) {
|
if (aarch64_cpus[uc->cpu_model].initfn) {
|
||||||
if (strcmp(cpu_model, aarch64_cpus[i].name) == 0) {
|
aarch64_cpus[uc->cpu_model].initfn(uc, cs);
|
||||||
if (aarch64_cpus[i].initfn) {
|
|
||||||
aarch64_cpus[i].initfn(uc, cs);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i == ARRAY_SIZE(aarch64_cpus)) {
|
|
||||||
free(cpu);
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* postinit ARMCPU */
|
/* postinit ARMCPU */
|
||||||
|
|
Loading…
Reference in New Issue