[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 28/40] target/arm: Split out xscale*_class_init
From: |
Richard Henderson |
Subject: |
[RFC PATCH 28/40] target/arm: Split out xscale*_class_init |
Date: |
Tue, 3 Jan 2023 10:16:34 -0800 |
Use two intermediate functions to share code between
the 13 variants of pxa*_class_init.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/cpu_tcg.c | 81 +++++++++++++-------------------------------
1 file changed, 23 insertions(+), 58 deletions(-)
diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c
index c6d50f326e..a3b6940040 100644
--- a/target/arm/cpu_tcg.c
+++ b/target/arm/cpu_tcg.c
@@ -857,120 +857,85 @@ static void sa1110_class_init(ARMCPUClass *acc)
acc->midr = 0x6901B119;
}
-static void pxa250_class_init(ARMCPUClass *acc)
+static void xscale_class_init(ARMCPUClass *acc)
{
acc->dtb_compatible = "marvell,xscale";
set_class_feature(acc, ARM_FEATURE_V5);
set_class_feature(acc, ARM_FEATURE_XSCALE);
- acc->midr = 0x69052100;
acc->ctr = 0xd172172;
acc->reset_sctlr = 0x00000078;
}
+static void pxa250_class_init(ARMCPUClass *acc)
+{
+ xscale_class_init(acc);
+ acc->midr = 0x69052100;
+}
+
static void pxa255_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
+ xscale_class_init(acc);
acc->midr = 0x69052d00;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa260_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
+ xscale_class_init(acc);
acc->midr = 0x69052903;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa261_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
+ xscale_class_init(acc);
acc->midr = 0x69052d05;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa262_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
+ xscale_class_init(acc);
acc->midr = 0x69052d06;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
+}
+
+static void xscale_iwmmxt_class_init(ARMCPUClass *acc)
+{
+ xscale_class_init(acc);
+ set_class_feature(acc, ARM_FEATURE_IWMMXT);
}
static void pxa270a0_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054110;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa270a1_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054111;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa270b0_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054112;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa270b1_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054113;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa270c0_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054114;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
static void pxa270c5_class_init(ARMCPUClass *acc)
{
- acc->dtb_compatible = "marvell,xscale";
- set_class_feature(acc, ARM_FEATURE_V5);
- set_class_feature(acc, ARM_FEATURE_XSCALE);
- set_class_feature(acc, ARM_FEATURE_IWMMXT);
+ xscale_iwmmxt_class_init(acc);
acc->midr = 0x69054117;
- acc->ctr = 0xd172172;
- acc->reset_sctlr = 0x00000078;
}
#ifdef CONFIG_TCG
--
2.34.1
- Re: [RFC PATCH 21/40] target/arm: Remove aarch64 check from aarch64_host_object_init, (continued)
- [RFC PATCH 20/40] target/arm: Merge kvm64.c with kvm.c, Richard Henderson, 2023/01/03
- [RFC PATCH 23/40] target/arm: Probe KVM host into ARMCPUClass, Richard Henderson, 2023/01/03
- [RFC PATCH 24/40] target/arm/hvf: Probe host into ARMCPUClass, Richard Henderson, 2023/01/03
- [RFC PATCH 17/40] target/arm: Copy cp_regs from ARMCPUClass, Richard Henderson, 2023/01/03
- [RFC PATCH 22/40] target/arm: Hoist feature and dtb_compatible from KVM, HVF, Richard Henderson, 2023/01/03
- [RFC PATCH 25/40] target/arm/hvf: Use offsetof in hvf_arm_get_host_cpu_features, Richard Henderson, 2023/01/03
- [RFC PATCH 27/40] target/arm: Split out strongarm_class_init, Richard Henderson, 2023/01/03
- [RFC PATCH 28/40] target/arm: Split out xscale*_class_init,
Richard Henderson <=
- [RFC PATCH 30/40] target/arm: Move feature bit propagation to class init, Richard Henderson, 2023/01/03
- [RFC PATCH 29/40] target/arm: Remove m-profile has_vfp and has_dsp properties, Richard Henderson, 2023/01/03
- [RFC PATCH 31/40] target/arm: Get and set class properties in the monitor, Richard Henderson, 2023/01/03
- [RFC PATCH 32/40] target/arm: Move "midr" to class property, Richard Henderson, 2023/01/03
- [RFC PATCH 33/40] target/arm: Move "cntfrq" to class property, Richard Henderson, 2023/01/03
- [RFC PATCH 34/40] target/arm: Move "reset-hivecs" to class property, Richard Henderson, 2023/01/03
- [RFC PATCH 37/40] target/arm: Move "cfgend" to class property, Richard Henderson, 2023/01/03