summaryrefslogtreecommitdiffstats
path: root/target-arm/translate-a64.c
diff options
context:
space:
mode:
authorPeter Maydell2014-02-26 18:20:05 +0100
committerPeter Maydell2014-02-26 18:20:05 +0100
commitd9ea7d290b685844d3603103bc53ad977e6f68a3 (patch)
tree382f70d418c5581facafbaa89521d04d976311e5 /target-arm/translate-a64.c
parenttarget-arm: Implement AArch64 OSLAR_EL1 sysreg as WI (diff)
downloadqemu-d9ea7d290b685844d3603103bc53ad977e6f68a3.tar.gz
qemu-d9ea7d290b685844d3603103bc53ad977e6f68a3.tar.xz
qemu-d9ea7d290b685844d3603103bc53ad977e6f68a3.zip
target-arm: Get MMU index information correct for A64 code
Emit the correct MMU index information for loads and stores from A64 code, rather than hardwiring it to "always kernel mode", by storing the exception level in the TB flags, and make cpu_mmu_index() return the right answer when the CPU is in AArch64 mode. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Diffstat (limited to 'target-arm/translate-a64.c')
-rw-r--r--target-arm/translate-a64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
index ec2d9dc219..a6c8fabb61 100644
--- a/target-arm/translate-a64.c
+++ b/target-arm/translate-a64.c
@@ -9013,7 +9013,7 @@ void gen_intermediate_code_internal_a64(ARMCPU *cpu,
dc->condexec_mask = 0;
dc->condexec_cond = 0;
#if !defined(CONFIG_USER_ONLY)
- dc->user = 0;
+ dc->user = (ARM_TBFLAG_AA64_EL(tb->flags) == 0);
#endif
dc->vfp_enabled = 0;
dc->vec_len = 0;