summaryrefslogtreecommitdiffstats
path: root/target/arm/translate-a64.c
diff options
context:
space:
mode:
authorRemi Denis-Courmont2019-01-25 22:49:26 +0100
committerPeter Maydell2019-02-01 16:25:24 +0100
commit1cf86a8618644beb860951ff4383457ee88a7f4a (patch)
tree36bbd5288cedaba1f66bc08f6b38008cf53c2088 /target/arm/translate-a64.c
parenttarget/arm: fix AArch64 virtual address space size (diff)
downloadqemu-1cf86a8618644beb860951ff4383457ee88a7f4a.tar.gz
qemu-1cf86a8618644beb860951ff4383457ee88a7f4a.tar.xz
qemu-1cf86a8618644beb860951ff4383457ee88a7f4a.zip
target/arm: fix decoding of B{,L}RA{A,B}
A flawed test lead to the instructions always being treated as unallocated encodings. Fixes: https://bugs.launchpad.net/bugs/1813460 Signed-off-by: Remi Denis-Courmont <remi.denis.courmont@huawei.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
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 b864ac7a69..a1997e3ae2 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -2036,7 +2036,7 @@ static void disas_uncond_b_reg(DisasContext *s, uint32_t insn)
if (!dc_isar_feature(aa64_pauth, s)) {
goto do_unallocated;
}
- if (op3 != 2 || op3 != 3) {
+ if ((op3 & ~1) != 2) {
goto do_unallocated;
}
if (s->pauth_active) {