target/arm: fix decoding of B{,L}RA{A,B}
authorRemi Denis-Courmont <remi.denis.courmont@huawei.com>
Fri, 25 Jan 2019 21:49:26 +0000 (23:49 +0200)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 1 Feb 2019 15:25:24 +0000 (15:25 +0000)
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>
target/arm/translate-a64.c

index b864ac7a69fced80012d4cc141a508c133a0ba65..a1997e3ae28d7a5a169f8d815337a3ec05481306 100644 (file)
@@ -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) {