Hi, Philippe,
On Fri, Aug 18, 2023 at 4:52 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> Hi Jiajie, Song,
>
> (+Huacai)
>
> On 17/8/23 11:31, Song Gao wrote:
> > From: Jiajie Chen <c@jia.je>
> >
> > Add object class for future loongarch32 cpus. It is derived from the
> > loongarch64 object class.
>
> Is it how the architecture design happened? IIUC per [*] it seems
> the arch was designed as a whole then adapted per segment (32/R,64).
> So from a QOM PoV better would be to have a abstract 'common' parent
> objs/classes, then derive 32/64 from it.
> IMHO this matters for the maintainability of target/loongarch/, but
> if this isn't important then I won't object much to this series.
From my point of view, it is more natural to have loongarch32-cpu
together with loongarch64-cpu, not loongarch32-cpu and loongarch-cpu
(only for 64bit).
Huacai
>
> Regards,
>
> Phil.
>
> [*]
> https://lore.kernel.org/linux-arch/20210706041820.1536502-1-chenhuacai@loongson.cn/
>
> > Signed-off-by: Jiajie Chen <c@jia.je>
> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> > Signed-off-by: Song Gao <gaosong@loongson.cn>
> > ---
> > target/loongarch/cpu.c | 19 +++++++++++++++++++
> > target/loongarch/cpu.h | 1 +
> > 2 files changed, 20 insertions(+)
>
>
> > @@ -750,6 +760,15 @@ static const TypeInfo loongarch_cpu_type_infos[] = {
> > .class_size = sizeof(LoongArchCPUClass),
> > .class_init = loongarch_cpu_class_init,
> > },
> > + {
> > + .name = TYPE_LOONGARCH32_CPU,
> > + .parent = TYPE_LOONGARCH_CPU,
> > + .instance_size = sizeof(LoongArchCPU),
> > +
> > + .abstract = true,
> > + .class_size = sizeof(LoongArchCPUClass),
> > + .class_init = loongarch32_cpu_class_init,
> > + },
> > DEFINE_LOONGARCH_CPU_TYPE("la464", loongarch_la464_initfn),
> > };
> >
> > diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h
> > index 5a71d64a04..2af4c414b0 100644
> > --- a/target/loongarch/cpu.h
> > +++ b/target/loongarch/cpu.h
> > @@ -382,6 +382,7 @@ struct ArchCPU {
> > };
> >
> > #define TYPE_LOONGARCH_CPU "loongarch-cpu"
> > +#define TYPE_LOONGARCH32_CPU "loongarch32-cpu"
> >
> > OBJECT_DECLARE_CPU_TYPE(LoongArchCPU, LoongArchCPUClass,
> > LOONGARCH_CPU)
>
>
--
Huacai Chen