mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-18 02:12:13 -07:00
target/riscv: merge riscv_cpu_class_init with the class_base function
Since all TYPE_RISCV_CPU subclasses support a class_data of type RISCVCPUDef, process it even before calling the .class_init function for the subclasses. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5fd23f20e1
commit
7f9e15d82d
1 changed files with 10 additions and 11 deletions
|
|
@ -3080,15 +3080,18 @@ static void riscv_cpu_class_base_init(ObjectClass *c, const void *data)
|
|||
} else {
|
||||
mcc->def = g_new0(RISCVCPUDef, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void riscv_cpu_class_init(ObjectClass *c, const void *data)
|
||||
{
|
||||
RISCVCPUClass *mcc = RISCV_CPU_CLASS(c);
|
||||
const RISCVCPUDef *def = data;
|
||||
if (data) {
|
||||
const RISCVCPUDef *def = data;
|
||||
if (def->misa_mxl_max) {
|
||||
assert(def->misa_mxl_max <= MXL_RV128);
|
||||
mcc->def->misa_mxl_max = def->misa_mxl_max;
|
||||
}
|
||||
}
|
||||
|
||||
mcc->def->misa_mxl_max = def->misa_mxl_max;
|
||||
riscv_cpu_validate_misa_mxl(mcc);
|
||||
if (!object_class_is_abstract(c)) {
|
||||
riscv_cpu_validate_misa_mxl(mcc);
|
||||
}
|
||||
}
|
||||
|
||||
static void riscv_isa_string_ext(RISCVCPU *cpu, char **isa_str,
|
||||
|
|
@ -3188,7 +3191,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, char *nodename)
|
|||
.name = (type_name), \
|
||||
.parent = TYPE_RISCV_DYNAMIC_CPU, \
|
||||
.instance_init = (initfn), \
|
||||
.class_init = riscv_cpu_class_init, \
|
||||
.class_data = &(const RISCVCPUDef) { \
|
||||
.misa_mxl_max = (misa_mxl_max_), \
|
||||
}, \
|
||||
|
|
@ -3199,7 +3201,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, char *nodename)
|
|||
.name = (type_name), \
|
||||
.parent = TYPE_RISCV_VENDOR_CPU, \
|
||||
.instance_init = (initfn), \
|
||||
.class_init = riscv_cpu_class_init, \
|
||||
.class_data = &(const RISCVCPUDef) { \
|
||||
.misa_mxl_max = (misa_mxl_max_), \
|
||||
}, \
|
||||
|
|
@ -3210,7 +3211,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, char *nodename)
|
|||
.name = (type_name), \
|
||||
.parent = TYPE_RISCV_BARE_CPU, \
|
||||
.instance_init = (initfn), \
|
||||
.class_init = riscv_cpu_class_init, \
|
||||
.class_data = &(const RISCVCPUDef) { \
|
||||
.misa_mxl_max = (misa_mxl_max_), \
|
||||
}, \
|
||||
|
|
@ -3221,7 +3221,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, char *nodename)
|
|||
.name = (type_name), \
|
||||
.parent = TYPE_RISCV_BARE_CPU, \
|
||||
.instance_init = (initfn), \
|
||||
.class_init = riscv_cpu_class_init, \
|
||||
.class_data = &(const RISCVCPUDef) { \
|
||||
.misa_mxl_max = (misa_mxl_max_), \
|
||||
}, \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue