aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorJaroslaw Pelczar <j.pelczar@samsung.com>2017-09-14 18:43:18 +0100
committerPeter Maydell <peter.maydell@linaro.org>2017-09-14 18:43:18 +0100
commitdddbba9943ef6a81c8702e4a50cb0a8b1a4201fe (patch)
treefb7475a046d9a1a34d42ea3f57ea74a9028e5386 /target
parentda69de00763c1bc221149f6618ef2c8f81e9f49a (diff)
AArch64: Fix single stepping of ERET instruction
Previously when single stepping through ERET instruction via GDB would result in debugger entering the "next" PC after ERET instruction. When debugging in kernel mode, this will also cause unintended behavior, because debugger will try to access memory from EL0 point of view. Signed-off-by: Jaroslaw Pelczar <j.pelczar@samsung.com> Message-id: 001c01d32895$483027f0$d89077d0$@samsung.com Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target')
-rw-r--r--target/arm/translate-a64.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 9017e30510..1bc12d93ca 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -11348,6 +11348,7 @@ static void aarch64_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
default:
gen_a64_set_pc_im(dc->pc);
/* fall through */
+ case DISAS_EXIT:
case DISAS_JUMP:
if (dc->base.singlestep_enabled) {
gen_exception_internal(EXCP_DEBUG);