diff options
author | Remi Denis-Courmont <remi.denis.courmont@huawei.com> | 2019-01-25 23:49:26 +0200 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2019-02-01 15:25:24 +0000 |
commit | 1cf86a8618644beb860951ff4383457ee88a7f4a (patch) | |
tree | 36bbd5288cedaba1f66bc08f6b38008cf53c2088 /target | |
parent | f6768aa1b4c6a80448eabd22bb9b4123c709caea (diff) |
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')
-rw-r--r-- | target/arm/translate-a64.c | 2 |
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) { |