[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 4/8] target/loongarch: Introduce abstract TYPE_LOONGARCH64_CPU
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v3 4/8] target/loongarch: Introduce abstract TYPE_LOONGARCH64_CPU |
Date: |
Mon, 21 Aug 2023 14:59:55 +0200 |
In preparation of introducing TYPE_LOONGARCH32_CPU, introduce
an abstract TYPE_LOONGARCH64_CPU.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
target/loongarch/cpu.h | 1 +
target/loongarch/cpu.c | 12 +++++++++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h
index fa371ca8ba..c50b3a5ef3 100644
--- a/target/loongarch/cpu.h
+++ b/target/loongarch/cpu.h
@@ -377,6 +377,7 @@ struct ArchCPU {
};
#define TYPE_LOONGARCH_CPU "loongarch-cpu"
+#define TYPE_LOONGARCH64_CPU "loongarch64-cpu"
OBJECT_DECLARE_CPU_TYPE(LoongArchCPU, LoongArchCPUClass,
LOONGARCH_CPU)
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index a1ebc20330..34d6c5a31d 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -734,9 +734,9 @@ static void loongarch_cpu_class_init(ObjectClass *c, void
*data)
#endif
}
-#define DEFINE_LOONGARCH_CPU_TYPE(model, initfn) \
+#define DEFINE_LOONGARCH_CPU_TYPE(size, model, initfn) \
{ \
- .parent = TYPE_LOONGARCH_CPU, \
+ .parent = TYPE_LOONGARCH##size##_CPU, \
.instance_init = initfn, \
.name = LOONGARCH_CPU_TYPE_NAME(model), \
}
@@ -752,7 +752,13 @@ static const TypeInfo loongarch_cpu_type_infos[] = {
.class_size = sizeof(LoongArchCPUClass),
.class_init = loongarch_cpu_class_init,
},
- DEFINE_LOONGARCH_CPU_TYPE("la464", loongarch_la464_initfn),
+ {
+ .name = TYPE_LOONGARCH64_CPU,
+ .parent = TYPE_LOONGARCH_CPU,
+
+ .abstract = true,
+ },
+ DEFINE_LOONGARCH_CPU_TYPE(64, "la464", loongarch_la464_initfn),
};
DEFINE_TYPES(loongarch_cpu_type_infos)
--
2.41.0
- [PATCH v3 0/8] target/loongarch: Cleanups in preparation of loongarch32 support, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 1/8] target/loongarch: Log I/O write accesses to CSR registers, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 2/8] target/loongarch: Remove duplicated disas_set_info assignment, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 4/8] target/loongarch: Introduce abstract TYPE_LOONGARCH64_CPU,
Philippe Mathieu-Daudé <=
- [PATCH v3 5/8] target/loongarch: Extract 64-bit specifics to loongarch64_cpu_class_init, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 6/8] target/loongarch: Add function to check current arch, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 3/8] target/loongarch: Fix loongarch_la464_initfn() misses setting LSPW, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 7/8] target/loongarch: Add new object class for loongarch32 cpus, Philippe Mathieu-Daudé, 2023/08/21
- [PATCH v3 8/8] target/loongarch: Add GDB support for loongarch32 mode, Philippe Mathieu-Daudé, 2023/08/21
- Re: [PATCH v3 0/8] target/loongarch: Cleanups in preparation of loongarch32 support, gaosong, 2023/08/21