mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target/arm: Move endianness fixup for 32-bit registers
Move the test outside of the banked register block, and repeat the AA32 test. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
415e21ac85
commit
5bd746e212
+12
-5
@@ -7438,14 +7438,21 @@ static void add_cpreg_to_hashtable(ARMCPU *cpu, ARMCPRegInfo *r,
|
||||
*/
|
||||
r->type |= ARM_CP_ALIAS;
|
||||
}
|
||||
|
||||
if (HOST_BIG_ENDIAN &&
|
||||
r->state == ARM_CP_STATE_BOTH && r->fieldoffset) {
|
||||
r->fieldoffset += sizeof(uint32_t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For 32-bit AArch32 regs shared with 64-bit AArch64 regs,
|
||||
* adjust the field offset for endianness. This had to be
|
||||
* delayed until banked registers were resolved.
|
||||
*/
|
||||
if (HOST_BIG_ENDIAN &&
|
||||
state == ARM_CP_STATE_AA32 &&
|
||||
r->state == ARM_CP_STATE_BOTH &&
|
||||
r->fieldoffset) {
|
||||
r->fieldoffset += sizeof(uint32_t);
|
||||
}
|
||||
|
||||
/*
|
||||
* Special registers (ie NOP/WFI) are never migratable and
|
||||
* are not even raw-accessible.
|
||||
|
||||
Reference in New Issue
Block a user