mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target/arm: Add ZT0
This is a 512-bit array introduced with SME2. Save it only when ZA is in use. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20250704142112.1018902-16-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
d8ff459b40
commit
694b2625dd
@@ -716,6 +716,9 @@ typedef struct CPUArchState {
|
||||
uint64_t scxtnum_el[4];
|
||||
|
||||
struct {
|
||||
/* SME2 ZT0 -- 512 bit array, with data ordered like ARMVectorReg. */
|
||||
uint64_t zt0[512 / 64] QEMU_ALIGNED(16);
|
||||
|
||||
/*
|
||||
* SME ZA storage -- 256 x 256 byte array, with bytes in host
|
||||
* word order, as we do with vfp.zregs[]. This corresponds to
|
||||
|
||||
@@ -321,6 +321,25 @@ static const VMStateDescription vmstate_za = {
|
||||
}
|
||||
};
|
||||
|
||||
static bool zt0_needed(void *opaque)
|
||||
{
|
||||
ARMCPU *cpu = opaque;
|
||||
|
||||
return za_needed(cpu) && cpu_isar_feature(aa64_sme2, cpu);
|
||||
}
|
||||
|
||||
static const VMStateDescription vmstate_zt0 = {
|
||||
.name = "cpu/zt0",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.needed = zt0_needed,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT64_ARRAY(env.za_state.zt0, ARMCPU,
|
||||
ARRAY_SIZE(((CPUARMState *)0)->za_state.zt0)),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
static bool serror_needed(void *opaque)
|
||||
{
|
||||
ARMCPU *cpu = opaque;
|
||||
@@ -1096,6 +1115,7 @@ const VMStateDescription vmstate_arm_cpu = {
|
||||
&vmstate_m_security,
|
||||
&vmstate_sve,
|
||||
&vmstate_za,
|
||||
&vmstate_zt0,
|
||||
&vmstate_serror,
|
||||
&vmstate_irq_line_state,
|
||||
&vmstate_wfxt_timer,
|
||||
|
||||
Reference in New Issue
Block a user