diff options
author | Yoshinori Sato <ysato@users.sourceforge.jp> | 2025-01-29 08:07:15 -0700 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2025-01-29 08:07:15 -0700 |
commit | 4318821562638a3d909942f561a42f7272ddfed4 (patch) | |
tree | 97357e0cbaaac8895a6746010d8944a4c76fa111 | |
parent | 09d1cbee10b8c51aed48f047f30717f622d6f811 (diff) | |
download | gcc-4318821562638a3d909942f561a42f7272ddfed4.zip gcc-4318821562638a3d909942f561a42f7272ddfed4.tar.gz gcc-4318821562638a3d909942f561a42f7272ddfed4.tar.bz2 |
[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.
-rw-r--r-- | gcc/config/rx/constraints.md | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rx/constraints.md b/gcc/config/rx/constraints.md index 4fc2426..4b81ae6 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)")) ) ) ) |