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),

Reply via email to