diff options
author | Fabiano Rosas <farosas@suse.de> | 2023-02-13 17:29:03 -0300 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2023-02-16 16:09:25 +0000 |
commit | 501e6d1f6c75e9bc844098fd13fca730188056ef (patch) | |
tree | c116f89c341cc5eaebebb8c05c10d514ac53f591 /target | |
parent | d55b2a2aa37ab07eed1517791344392b3c147f09 (diff) | |
download | qemu-501e6d1f6c75e9bc844098fd13fca730188056ef.zip qemu-501e6d1f6c75e9bc844098fd13fca730188056ef.tar.gz qemu-501e6d1f6c75e9bc844098fd13fca730188056ef.tar.bz2 |
target/arm: Move PC alignment check
Move this earlier to make the next patch diff cleaner. While here
update the comment slightly to not give the impression that the
misalignment affects only TCG.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target')
-rw-r--r-- | target/arm/machine.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/target/arm/machine.c b/target/arm/machine.c index 5f26152..b4c3850 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -839,6 +839,15 @@ static int cpu_post_load(void *opaque, int version_id) } } + /* + * Misaligned thumb pc is architecturally impossible. Fail the + * incoming migration. For TCG it would trigger the assert in + * thumb_tr_translate_insn(). + */ + if (!is_a64(env) && env->thumb && (env->regs[15] & 1)) { + return -1; + } + hw_breakpoint_update_all(cpu); hw_watchpoint_update_all(cpu); @@ -856,15 +865,6 @@ static int cpu_post_load(void *opaque, int version_id) } } - /* - * Misaligned thumb pc is architecturally impossible. - * We have an assert in thumb_tr_translate_insn to verify this. - * Fail an incoming migrate to avoid this assert. - */ - if (!is_a64(env) && env->thumb && (env->regs[15] & 1)) { - return -1; - } - if (!kvm_enabled()) { pmu_op_finish(&cpu->env); } |