diff options
author | Brendan Kehoe <brendan@gcc.gnu.org> | 1993-03-31 15:09:44 -0500 |
---|---|---|
committer | Brendan Kehoe <brendan@gcc.gnu.org> | 1993-03-31 15:09:44 -0500 |
commit | 6eff269e954a906bb2324013a9656d484dabceb2 (patch) | |
tree | b0f64862f346f519af2235d5a83199df2c25a57a | |
parent | 6ec87b9de9a2749bacdeb1f0a382652c113607b4 (diff) | |
download | gcc-6eff269e954a906bb2324013a9656d484dabceb2.zip gcc-6eff269e954a906bb2324013a9656d484dabceb2.tar.gz gcc-6eff269e954a906bb2324013a9656d484dabceb2.tar.bz2 |
define CONSTANT_ADDRESS_P(X) to not use CONST_DOUBLE
From-SVN: r3954
-rw-r--r-- | gcc/config/convex/convex.h | 5 | ||||
-rw-r--r-- | gcc/config/elxsi/elxsi.h | 5 | ||||
-rw-r--r-- | gcc/config/fx80/fx80.h | 5 | ||||
-rw-r--r-- | gcc/config/gmicro/gmicro.h | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 5 | ||||
-rw-r--r-- | gcc/config/i386/osfrose.h | 4 | ||||
-rw-r--r-- | gcc/config/i860/i860.h | 5 | ||||
-rw-r--r-- | gcc/config/i960/i960.h | 5 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.h | 5 | ||||
-rw-r--r-- | gcc/config/m88k/m88k.h | 5 | ||||
-rw-r--r-- | gcc/config/mips/mips.h | 15 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 7 | ||||
-rw-r--r-- | gcc/config/pyr/pyr.h | 5 | ||||
-rw-r--r-- | gcc/config/romp/romp.h | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.h | 5 | ||||
-rw-r--r-- | gcc/config/spur/spur.h | 5 | ||||
-rw-r--r-- | gcc/config/tahoe/tahoe.h | 5 | ||||
-rw-r--r-- | gcc/config/vax/vax.h | 5 | ||||
-rw-r--r-- | gcc/config/we32k/we32k.h | 5 |
20 files changed, 82 insertions, 29 deletions
diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h index 2754fd1..f31b03f 100644 --- a/gcc/config/convex/convex.h +++ b/gcc/config/convex/convex.h @@ -582,7 +582,10 @@ enum reg_class { /* 1 if X is an rtx for a constant that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/elxsi/elxsi.h b/gcc/config/elxsi/elxsi.h index dbf5126..029a1ab 100644 --- a/gcc/config/elxsi/elxsi.h +++ b/gcc/config/elxsi/elxsi.h @@ -522,7 +522,10 @@ enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES }; /* 1 if X is an rtx for a constant that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/fx80/fx80.h b/gcc/config/fx80/fx80.h index 01f738d..06acdfd 100644 --- a/gcc/config/fx80/fx80.h +++ b/gcc/config/fx80/fx80.h @@ -653,7 +653,10 @@ extern enum reg_class regno_reg_class[]; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/gmicro/gmicro.h b/gcc/config/gmicro/gmicro.h index b726246..683550a 100644 --- a/gcc/config/gmicro/gmicro.h +++ b/gcc/config/gmicro/gmicro.h @@ -918,7 +918,10 @@ extern enum reg_class regno_reg_class[]; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 29f1113..fa8f0b5 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -934,7 +934,10 @@ do { \ #define MAX_REGS_PER_ADDRESS 2 -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/i386/osfrose.h b/gcc/config/i386/osfrose.h index cbbc8c2..2d0c6eb 100644 --- a/gcc/config/i386/osfrose.h +++ b/gcc/config/i386/osfrose.h @@ -144,7 +144,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #undef CONSTANT_ADDRESS_P #define CONSTANT_ADDRESS_P(X) \ - (CONSTANT_P (X) && (!HALF_PIC_P () || !HALF_PIC_ADDRESS_P (X))) + ((GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) && (!HALF_PIC_P () || !HALF_PIC_ADDRESS_P (X))) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h index fcd385e..40bef3f 100644 --- a/gcc/config/i860/i860.h +++ b/gcc/config/i860/i860.h @@ -693,7 +693,10 @@ struct cumulative_args { int ints, floats; }; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. diff --git a/gcc/config/i960/i960.h b/gcc/config/i960/i960.h index c4b8e51..46acfa2 100644 --- a/gcc/config/i960/i960.h +++ b/gcc/config/i960/i960.h @@ -911,7 +911,10 @@ extern struct rtx_def *i960_function_arg (); /* Maximum number of registers that can appear in a valid memory address. */ #define MAX_REGS_PER_ADDRESS 2 -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* LEGITIMATE_CONSTANT_P is nonzero if the constant value X is a legitimate general operand. diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index ca9907b..4609e1d 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -1047,7 +1047,10 @@ __transfer_from_trampoline () \ /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h index 031ca54..b5bc29d 100644 --- a/gcc/config/m88k/m88k.h +++ b/gcc/config/m88k/m88k.h @@ -1253,7 +1253,10 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, /* #define HAVE_PRE_INCREMENT */ /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X)) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Maximum number of registers that can appear in a valid memory address. */ #define MAX_REGS_PER_ADDRESS 2 diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index f3a2ead..9101fc3 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2181,17 +2181,12 @@ __enable_execute_stack (addr) \ /* A C expression that is 1 if the RTX X is a constant which is a - valid address. On most machines, this can be defined as - `CONSTANT_P (X)', but a few machines are more restrictive in - which constant addresses are supported. - - `CONSTANT_P' accepts integer-values expressions whose values are - not explicitly known, such as `symbol_ref', `label_ref', and - `high' expressions and `const' arithmetic expressions, in - addition to `const_int' and `const_double' expressions. */ - + valid address. This is defined to be the same as `CONSTANT_P (X)', + but rejecting CONST_DOUBLE. */ #define CONSTANT_ADDRESS_P(X) \ - (CONSTANT_P (X) && (!HALF_PIC_P () || !HALF_PIC_ADDRESS_P (X))) + ((GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) && (!HALF_PIC_P () || !HALF_PIC_ADDRESS_P (X))) /* Nonzero if the constant value X is a legitimate general operand. diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 75f552a..5b207ce 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1056,9 +1056,14 @@ extern union tree_node *current_function_decl; /* Recognize any constant value that is a valid address except for symbolic addresses. We get better CSE by rejecting them - here and allowing hppa_legitimize_address to break them up. */ + here and allowing hppa_legitimize_address to break them up. We + use most of the constants accepted by CONSTANT_P, except CONST_DOUBLE. */ #define CONSTANT_ADDRESS_P(X) \ + ((GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) && ! symbolic_expression_p (X)) + (CONSTANT_P (X) && ! symbolic_expression_p (X)) /* Include all constant integers and constant doubles, but not diff --git a/gcc/config/pyr/pyr.h b/gcc/config/pyr/pyr.h index 163213a..758876c 100644 --- a/gcc/config/pyr/pyr.h +++ b/gcc/config/pyr/pyr.h @@ -829,7 +829,10 @@ extern int current_function_calls_alloca; /* 1 if X is an rtx for a constant that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/romp/romp.h b/gcc/config/romp/romp.h index aa48d4a..85c1b41 100644 --- a/gcc/config/romp/romp.h +++ b/gcc/config/romp/romp.h @@ -947,7 +947,10 @@ struct rt_cargs {int gregs, fregs; }; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 7e77c1d..c9ad94f 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -969,7 +969,10 @@ struct rs6000_args {int words, fregno, nargs_prototype; }; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index eebcb43..27dbfb0 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1135,7 +1135,10 @@ extern struct rtx_def *sparc_builtin_saveregs (); /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X)) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. Anything can be made to work except floating point constants. */ diff --git a/gcc/config/spur/spur.h b/gcc/config/spur/spur.h index baa1855..7a8ed4b 100644 --- a/gcc/config/spur/spur.h +++ b/gcc/config/spur/spur.h @@ -622,7 +622,10 @@ extern int current_function_pretend_args_size; /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/tahoe/tahoe.h b/gcc/config/tahoe/tahoe.h index 42f416b..0982b7d 100644 --- a/gcc/config/tahoe/tahoe.h +++ b/gcc/config/tahoe/tahoe.h @@ -446,7 +446,10 @@ enum reg_class {NO_REGS,GENERAL_REGS,FPP_REG,ALL_REGS,LIM_REG_CLASSES}; /* constant addresses can be treated exactly the same as normal constants */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* we can have as many as two regs in any given address */ diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index 04877ed..8171fce 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -571,7 +571,10 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CONST_INT, VOIDmode, 12)) /* 1 if X is an rtx for a constant that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ diff --git a/gcc/config/we32k/we32k.h b/gcc/config/we32k/we32k.h index 974b8e60..0eee791 100644 --- a/gcc/config/we32k/we32k.h +++ b/gcc/config/we32k/we32k.h @@ -533,7 +533,10 @@ enum reg_class { NO_REGS, GENERAL_REGS, /* Recognize any constant value that is a valid address. */ -#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X) +#define CONSTANT_ADDRESS_P(X) \ + (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \ + || GET_CODE (X) == CONST_INT || GET_CODE (X) == CONST \ + || GET_CODE (X) == HIGH) /* Nonzero if the constant value X is a legitimate general operand. It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */ |