From 38250554a3366aee701c6dc337f57073f6756920 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 3 Nov 1994 18:11:49 -0500 Subject: [PATCH] (EXTRA_CONSTRAINT): 'R' matches a SYMBOL_REF for TOC entry. (PRINT_OPERAND_PUNCT_VALID_P): Recognize '*'. (PREDICATE_CODES): input_operand can now match SYMBOL_REF. From-SVN: r8381 --- gcc/config/rs6000/rs6000.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 340d50f..58a7087 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -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, \ -- 2.7.4