On 3/3/26 17:11, Anton Johansson via qemu development wrote:
Clarifies current CPU model names, assuming 32-bit HPPA runs a PA-7300LC
whereas 64-bit runs a PA-8700.  The PA-8500 model is added, which will
later be used by the A400 machine.  All CPU models are made into children
of the now abstract TYPE_HPPA_CPU base class.

References to "hppa/hppa64" models in test cases are also updated.

Reviewed-by: Helge Deller <[email protected]>
Signed-off-by: Anton Johansson <[email protected]>
---
  target/hppa/cpu-qom.h           |  8 +++++++-
  hw/hppa/machine.c               | 21 +++++++++++++--------
  linux-user/hppa/elfload.c       |  2 +-
  target/hppa/cpu.c               | 25 ++++++++++++++++++++-----
  tests/qtest/machine-none-test.c |  2 +-
  5 files changed, 42 insertions(+), 16 deletions(-)


diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 714f3bbdaf..910a919923 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -207,7 +207,9 @@ static void hppa_cpu_initfn(Object *obj)
  {
      CPUHPPAState *env = cpu_env(CPU(obj));
- env->is_pa20 = !!object_dynamic_cast(obj, TYPE_HPPA64_CPU);
+    env->is_pa20 = !!object_dynamic_cast(obj, TYPE_HPPA_CPU_PA_8500) ||
+                   !!object_dynamic_cast(obj, TYPE_HPPA_CPU_PA_8700);

Don't we have an architectural bit to test? Does this scale? Could we
propagate in per-CPU_TYPE class_init handler?

+
  }


  #ifndef CONFIG_USER_ONLY
@@ -314,12 +321,20 @@ static const TypeInfo hppa_cpu_type_infos[] = {
          .instance_size = sizeof(HPPACPU),
          .instance_align = __alignof(HPPACPU),
          .instance_init = hppa_cpu_initfn,
-        .abstract = false,
+        .abstract = true,
          .class_size = sizeof(HPPACPUClass),
          .class_init = hppa_cpu_class_init,
      },
      {
-        .name = TYPE_HPPA64_CPU,
+        .name = TYPE_HPPA_CPU_PA_7300LC,
+        .parent = TYPE_HPPA_CPU,
+    },
+    {
+        .name = TYPE_HPPA_CPU_PA_8500,
+        .parent = TYPE_HPPA_CPU,
+    },
+    {
+        .name = TYPE_HPPA_CPU_PA_8700,
          .parent = TYPE_HPPA_CPU,
      },
  };

Reply via email to