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.
(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)"))
)
)
)