From: Peter Crosthwaite <peter.crosthwa...@xilinx.com> If doing big-endian linux-user mode, set both the CPSR.E and SCTLR.E0E bits. This sets big-endian mode for data accesses in AA32 and AA64 resp.
Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> --- linux-user/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/main.c b/linux-user/main.c index ee12035..4f8ea9c 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -4454,6 +4454,10 @@ int main(int argc, char **argv, char **envp) for(i = 0; i < 16; i++) { env->regs[i] = regs->uregs[i]; } +#ifdef TARGET_WORDS_BIGENDIAN + env->uncached_cpsr |= CPSR_E; + env->cp15.sctlr_el[1] |= SCTLR_E0E; +#endif /* Enable BE8. */ if (EF_ARM_EABI_VERSION(info->elf_flags) >= EF_ARM_EABI_VER4 && (info->elf_flags & EF_ARM_BE8)) { -- 1.9.1