diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-04-04 18:07:08 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-04-04 18:07:08 -0600 |
commit | 84721fbde7a0bc86a1e3b279293394829ba43746 (patch) | |
tree | 73d14f0d3248866b08ce2a734ed59388cf064889 | |
parent | 64a483047afac29c0c6dbf0b8855d39df2fbc176 (diff) | |
download | gcc-84721fbde7a0bc86a1e3b279293394829ba43746.zip gcc-84721fbde7a0bc86a1e3b279293394829ba43746.tar.gz gcc-84721fbde7a0bc86a1e3b279293394829ba43746.tar.bz2 |
pa.h (EXTRA_CONSTRAINT): Refine 'T' constraint to not accept pseudos which did not get hard registers.
* pa.h (EXTRA_CONSTRAINT): Refine 'T' constraint to not accept
pseudos which did not get hard registers. Do not use
short_memory_operand.
From-SVN: r4013
-rw-r--r-- | gcc/config/pa/pa.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 2a613a6..8a65f74 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1095,7 +1095,7 @@ extern union tree_node *current_function_decl; `S' handles constraints for calls. - `T' is for fp load and store addresses.*/ + `T' is for fp loads and stores. */ #define EXTRA_CONSTRAINT(OP, C) \ ((C) == 'Q' ? \ (IS_RELOADING_PSEUDO_P (OP) \ @@ -1105,9 +1105,10 @@ extern union tree_node *current_function_decl; && memory_address_p (GET_MODE (OP), XEXP (OP, 0))\ && ! symbolic_memory_operand (OP, VOIDmode))) \ : ((C) == 'T' ? \ - (IS_RELOADING_PSEUDO_P (OP) \ - || (GET_CODE (OP) == MEM \ - && short_memory_operand (OP, VOIDmode))) \ + (GET_CODE (OP) == MEM \ + /* Using DFmode forces only short displacements \ + to be recognized as valid in reg+d addresses. */\ + && memory_address_p (DFmode, XEXP (OP, 0))) \ : ((C) == 'S' ? \ ((CONSTANT_P (OP) && ! TARGET_LONG_CALLS) \ || (reload_in_progress \ |