aboutsummaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
authorPierrick Bouvier <pierrick.bouvier@linaro.org>2025-03-24 21:59:06 -0700
committerRichard Henderson <richard.henderson@linaro.org>2025-04-23 15:04:57 -0700
commit77b0893f60ecabdc796565d130343e50cfdf28f9 (patch)
tree2a948d238f9797cf825c21a606fc27afa227c03d /rust
parent9fac39750df766c154e0960eca1962159ed50660 (diff)
downloadqemu-77b0893f60ecabdc796565d130343e50cfdf28f9.zip
qemu-77b0893f60ecabdc796565d130343e50cfdf28f9.tar.gz
qemu-77b0893f60ecabdc796565d130343e50cfdf28f9.tar.bz2
target/arm/cpu: define same set of registers for aarch32 and aarch64
To eliminate TARGET_AARCH64, we need to make various definitions common between 32 and 64 bit Arm targets. Added registers are used only by aarch64 code, and the only impact is on the size of CPUARMState, and added zarray (ARMVectorReg zarray[ARM_MAX_VQ * 16]) member (+64KB) It could be eventually possible to allocate this array only for aarch64 emulation, but I'm not sure it's worth the hassle to save a few KB per vcpu. Running qemu-system takes already several hundreds of MB of (resident) memory, and qemu-user takes dozens of MB of (resident) memory anyway. As part of this, we define ARM_MAX_VQ once for aarch32 and aarch64, which will affect zregs field for aarch32. This field is used for MVE and SVE implementations. MVE implementation is clipping index value to 0 or 1 for zregs[*].d[], so we should not touch the rest of data in this case anyway. This change is safe regarding migration, because aarch64 registers still have the same size, and for aarch32, only zregs is modified. Migration code explicitly specify a size of 2 for env.vfp.zregs[0].d, VMSTATE_UINT64_SUB_ARRAY(env.vfp.zregs[0].d, ARMCPU, 0, 2). So extending the storage size has no impact. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20250325045915.994760-22-pierrick.bouvier@linaro.org>
Diffstat (limited to 'rust')
0 files changed, 0 insertions, 0 deletions