From 9725df0233b6fb6e761875968b3b8e9fd9f522ac Mon Sep 17 00:00:00 2001 From: "Vladimir N. Makarov" Date: Tue, 9 Mar 2021 09:05:05 -0500 Subject: [PATCH] [PR99454] LRA: Process 0..9 constraints in process_address_1 We need to process 0..9 constraints to fetch the right op constraint in the function. Also 0..9 constraints gives unknown class constraint class which can result in skipping address normalization for memory in asm. gcc/ChangeLog: PR target/99454 * lra-constraints.c (process_address_1): Process 0..9 constraints in process_address_1. --- gcc/lra-constraints.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 76e3ff7..feff766 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -3452,6 +3452,10 @@ process_address_1 (int nop, bool check_only_p, constraint = skip_contraint_modifiers (curr_static_id->operand[nop].constraint); + if ('0' <= constraint[0] && constraint[0] <= '9') + constraint + = skip_contraint_modifiers (curr_static_id->operand + [constraint[0] - '0'].constraint); cn = lookup_constraint (constraint); if (insn_extra_address_constraint (cn) /* When we find an asm operand with an address constraint that -- 2.7.4