[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 02/18] target/loongarch: Add new object class for loongarch32
From: |
Song Gao |
Subject: |
[PATCH v3 02/18] target/loongarch: Add new object class for loongarch32 cpus |
Date: |
Thu, 17 Aug 2023 17:31:05 +0800 |
From: Jiajie Chen <c@jia.je>
Add object class for future loongarch32 cpus. It is derived from the
loongarch64 object class.
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(+)
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index ad93ecac92..c6b73444b4 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -732,12 +732,22 @@ static void loongarch_cpu_class_init(ObjectClass *c, void
*data)
#endif
}
+static void loongarch32_cpu_class_init(ObjectClass *c, void *data)
+{
+}
+
#define DEFINE_LOONGARCH_CPU_TYPE(model, initfn) \
{ \
.parent = TYPE_LOONGARCH_CPU, \
.instance_init = initfn, \
.name = LOONGARCH_CPU_TYPE_NAME(model), \
}
+#define DEFINE_LOONGARCH32_CPU_TYPE(model, initfn) \
+ { \
+ .parent = TYPE_LOONGARCH32_CPU, \
+ .instance_init = initfn, \
+ .name = LOONGARCH_CPU_TYPE_NAME(model), \
+ }
static const TypeInfo loongarch_cpu_type_infos[] = {
{
@@ -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)
--
2.39.1
- [PATCH v3 00/18] Add some checks before translating instructions, Song Gao, 2023/08/17
- [PATCH v3 07/18] target/loongarch: Add LA64 & VA32 to DisasContext, Song Gao, 2023/08/17
- [PATCH v3 01/18] target/loongarch: Add function to check current arch, Song Gao, 2023/08/17
- [PATCH v3 04/18] target/loongarch: Support LoongArch32 TLB entry, Song Gao, 2023/08/17
- [PATCH v3 03/18] target/loongarch: Add GDB support for loongarch32 mode, Song Gao, 2023/08/17
- [PATCH v3 09/18] target/loongarch: Sign extend results in VA32 mode, Song Gao, 2023/08/17
- [PATCH v3 02/18] target/loongarch: Add new object class for loongarch32 cpus,
Song Gao <=
- [PATCH v3 06/18] target/loongarch: Support LoongArch32 VPPN, Song Gao, 2023/08/17
- [PATCH v3 08/18] target/loongarch: Truncate high 32 bits of address in VA32 mode, Song Gao, 2023/08/17
- [PATCH v3 15/18] target/loongarch: Add avail_LSPW to check LSPW instructions, Song Gao, 2023/08/17
- [PATCH v3 11/18] target/loongarch: Add a check parameter to the TRANS macro, Song Gao, 2023/08/17