From 4318821562638a3d909942f561a42f7272ddfed4 Mon Sep 17 00:00:00 2001 From: Yoshinori Sato <ysato@users.sourceforge.jp> Date: Wed, 29 Jan 2025 08:07:15 -0700 Subject: [PATCH] [PATCH] RX: Restrict displacement ranges in "Q" constraint When using the "Q" constraint in the inline assembler, the displacement value could exceed the range specified by the instruction. To avoid this issue, a displacement range check is added to the "Q" constraint. gcc/ * config/rx/constraints.md (Q): Also check that the address passes rx_is_restricted_memory-address. --- gcc/config/rx/constraints.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/config/rx/constraints.md b/gcc/config/rx/constraints.md index 4fc242667ab4..4b81ae6aa75b 100644 --- a/gcc/config/rx/constraints.md +++ b/gcc/config/rx/constraints.md @@ -80,7 +80,8 @@ (ior (match_code "reg" "0") (and (match_code "plus" "0") (and (match_code "reg,subreg" "00") - (match_code "const_int" "01") + (and (match_code "const_int" "01") + (match_test "rx_is_restricted_memory_address (XEXP (op, 0), mode)")) ) ) ) -- GitLab