(EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry.
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 3 Nov 1994 23:11:49 +0000 (18:11 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 3 Nov 1994 23:11:49 +0000 (18:11 -0500)
(PRINT_OPERAND_PUNCT_VALID_P): Recognize '*'.
(PREDICATE_CODES): input_operand can now match SYMBOL_REF.

From-SVN: r8381

gcc/config/rs6000/rs6000.h

index 340d50f5201e65afc3a11deec863b46537aab3cc..58a7087cb561f03c89d9c383b45cd69709b1f788 100644 (file)
@@ -682,6 +682,7 @@ enum reg_class { NO_REGS, BASE_REGS, GENERAL_REGS, FLOAT_REGS,
 
 #define EXTRA_CONSTRAINT(OP, C)                                                \
   ((C) == 'Q' ? GET_CODE (OP) == MEM && GET_CODE (XEXP (OP, 0)) == REG \
+   : (C) == 'R' ? GET_CODE (OP) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P (OP)\
    : 0)
 
 /* Given an rtx X being reloaded into a reg required to be
@@ -2155,7 +2156,7 @@ toc_section ()                                            \
 
 /* Define which CODE values are valid.  */
 
-#define PRINT_OPERAND_PUNCT_VALID_P(CODE)  ((CODE) == '.')
+#define PRINT_OPERAND_PUNCT_VALID_P(CODE)  ((CODE) == '.' || (CODE) == '*')
 
 /* Print a memory address as an operand to reference that memory location.  */
 
@@ -2186,7 +2187,7 @@ toc_section ()                                            \
   {"mask_operand", {CONST_INT}},                               \
   {"call_operand", {SYMBOL_REF, REG}},                         \
   {"current_file_function_operand", {SYMBOL_REF}},             \
-  {"input_operand", {SUBREG, MEM, REG, CONST_INT}},            \
+  {"input_operand", {SUBREG, MEM, REG, CONST_INT, SYMBOL_REF}},        \
   {"load_multiple_operation", {PARALLEL}},                     \
   {"store_multiple_operation", {PARALLEL}},                    \
   {"branch_comparison_operator", {EQ, NE, LE, LT, GE,          \