diff options
author | Thomas Preud'homme <thomas.preudhomme@linaro.org> | 2018-10-04 07:55:02 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2018-10-04 07:55:02 +0000 |
commit | b4ee650946b829b12e06a439f00c8d67d3caeed6 (patch) | |
tree | a7e6db5b4f4bd548cd636166bdd968cb5c08fd05 /gcc/lra-constraints.c | |
parent | 0863decda9aef33b8073c13f6d27826b881e6280 (diff) | |
download | gcc-b4ee650946b829b12e06a439f00c8d67d3caeed6.zip gcc-b4ee650946b829b12e06a439f00c8d67d3caeed6.tar.gz gcc-b4ee650946b829b12e06a439f00c8d67d3caeed6.tar.bz2 |
Never reload fixed form constraints memory operand
The unconditional reload of address operand for recognized instruction
in process_address_1 prevent the patch fixing PR85434 from working as
expected. The code in that patch attempts to control which registers are
used to make PIC access but the reload performed by process_address_1
will use generic PIC access. This patch removes the test for the
instruction to be unrecognized to do the reload, thus always avoiding to
reload address operand for fixed constraints (such as "X" used in the
patch).
2018-10-04 Thomas Preud'homme <thomas.preudhomme@linaro.org>
gcc/
* lra-constraints.c (process_address_1): Bail out for all
satisfied fixed constraints.
From-SVN: r264834
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r-- | gcc/lra-constraints.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 774d1ff..c3edd9e 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -3243,8 +3243,7 @@ process_address_1 (int nop, bool check_only_p, /* Do not attempt to decompose arbitrary addresses generated by combine for asm operands with loose constraints, e.g 'X'. */ else if (MEM_P (op) - && !(INSN_CODE (curr_insn) < 0 - && get_constraint_type (cn) == CT_FIXED_FORM + && !(get_constraint_type (cn) == CT_FIXED_FORM && constraint_satisfied_p (op, cn))) decompose_mem_address (&ad, op); else if (GET_CODE (op) == SUBREG |