git: 8753039a8f23 - main - arm64: Fix a logic bug in is_load_instr().

John Baldwin jhb at FreeBSD.org
Wed Sep 15 16:05:35 UTC 2021


The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=8753039a8f231ab04c7f3db9eaa5d9144d73440d

commit 8753039a8f231ab04c7f3db9eaa5d9144d73440d
Author:     John Baldwin <jhb at FreeBSD.org>
AuthorDate: 2021-09-15 16:03:18 +0000
Commit:     John Baldwin <jhb at FreeBSD.org>
CommitDate: 2021-09-15 16:03:18 +0000

    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
---
 sys/arm64/include/db_machdep.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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) */


More information about the dev-commits-src-all mailing list