Hi,
On 26/5/23 01:25, Richard Henderson wrote:
Document the meaning of exclusive_high in a big-endian context,
and why we can't change it now.
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
target/arm/cpu.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index d469a2637b..4e16eab82e 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -677,8 +677,15 @@ typedef struct CPUArchState {
uint64_t zcr_el[4]; /* ZCR_EL[1-3] */
uint64_t smcr_el[4]; /* SMCR_EL[1-3] */
} vfp;
+
uint64_t exclusive_addr;
uint64_t exclusive_val;
+ /*
+ * Contains the 'val' for the second 64-bit register of LDXP, which comes
+ * from the higher address, not the high part of a complete 128-bit value.
+ * This is perhaps confusingly named, but the name is now baked into the
+ * migration format.
+ */
uint64_t exclusive_high;
Can't we rename the field if we add the old name to check_fields_match()
in scripts/vmstate-static-checker.py?
Juan, could we store this renamed information directly in the code in
VMState? Maybe adding some VMSTATE_KEY_ALIAS(_old_key, _new_key) macro
and have the migration/ code magically deal with that :)
I.e. here:
VMSTATE_KEY_ALIAS("exclusive_val", high_addr),