pa.h (EXTRA_CONSTRAINT): Refine 'T' constraint to not accept pseudos which did not...
authorJeff Law <law@gcc.gnu.org>
Mon, 5 Apr 1993 00:07:08 +0000 (18:07 -0600)
committerJeff Law <law@gcc.gnu.org>
Mon, 5 Apr 1993 00:07:08 +0000 (18:07 -0600)
* 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

gcc/config/pa/pa.h

index 2a613a6..8a65f74 100644 (file)
@@ -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                                 \