aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2021-09-15 16:03:18 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2021-09-15 16:03:18 +0000
commit8753039a8f231ab04c7f3db9eaa5d9144d73440d (patch)
tree331da7edd96eac4e216d2bd34bb4ea65b891f30d
parentd99c87c8d54a02a229cbeaa19ec8784b1d5afbb9 (diff)
downloadsrc-8753039a8f231ab04c7f3db9eaa5d9144d73440d.tar.gz
src-8753039a8f231ab04c7f3db9eaa5d9144d73440d.zip
arm64: Fix a logic bug in is_load_instr().
Logical and ('&&') was used to join two conditions instead of logical or ('||') causing some store instructions to not be recognized. Reported by: GCC 9 -Wparentheses Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D31949
-rw-r--r--sys/arm64/include/db_machdep.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/arm64/include/db_machdep.h b/sys/arm64/include/db_machdep.h
index 105e8e507ce3..9ec0b6402a91 100644
--- a/sys/arm64/include/db_machdep.h
+++ b/sys/arm64/include/db_machdep.h
@@ -97,7 +97,7 @@ typedef long db_expr_t;
(((ins) & 0xffe00c00u) != 0x3c800000u)) || /* unscaled immediate */ \
((((ins) & 0x3b000000u) == 0x39000000u) && \
(((ins) & 0x3bc00000u) != 0x39000000u) && \
- (((ins) & 0xffc00000u) != 0x3d800000u)) && /* unsigned immediate */ \
+ (((ins) & 0xffc00000u) != 0x3d800000u)) || /* unsigned immediate */ \
(((ins) & 0x3bc00000u) == 0x28400000u) || /* pair (offset) */ \
(((ins) & 0x3bc00000u) == 0x28c00000u) || /* pair (post-indexed) */ \
(((ins) & 0x3bc00000u) == 0x29800000u)) /* pair (pre-indexed) */