diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-07-03 19:44:20 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-07-03 15:44:20 -0400 |
commit | b72f00afa4b3bea9d3475221a5f51decc7341159 (patch) | |
tree | 081c8c15685a2597ef47710962db021ebdc66c2a /gcc/recog.c | |
parent | 3b324340369b9c67e16382e949b63fb0cfeafaaa (diff) | |
download | gcc-b72f00afa4b3bea9d3475221a5f51decc7341159.zip gcc-b72f00afa4b3bea9d3475221a5f51decc7341159.tar.gz gcc-b72f00afa4b3bea9d3475221a5f51decc7341159.tar.bz2 |
explow.c (plus_constant_wide, case PLUS): Call find_constant_term and avoid checking for constant as first operand.
* explow.c (plus_constant_wide, case PLUS): Call find_constant_term
and avoid checking for constant as first operand.
* recog.c (find_constant_term_loc): No longer static.
(adj_offettable_operand): Delete.
* rtl.h (adj_offsettable_operand): Delete declaration.
(find_constant_term): Add declaration.
* caller-save.c: Replace calls to adj_offsettable_operand with calls
to adjust_address.
* config/arm/arm.c, config/c4x/c4x.c: Likewise.
* config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
* config/i386/i386.c, config/i386/i386.md: Likewise.
* config/i860/i860.c, config/i960/i960.c: Likewise.
* config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
* config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
* config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
* config/mips/mips.c, config/mips/mips.md: Likewise.
* config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
* config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
* config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
* config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
* config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
* config/ns32k/ns32k.md: Likewise.
From-SVN: r43733
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 49 |
1 files changed, 1 insertions, 48 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 10230d5..e3472a5 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -55,7 +55,6 @@ Boston, MA 02111-1307, USA. */ static void validate_replace_rtx_1 PARAMS ((rtx *, rtx, rtx, rtx)); static rtx *find_single_use_1 PARAMS ((rtx, rtx *)); -static rtx *find_constant_term_loc PARAMS ((rtx *)); static void validate_replace_src_1 PARAMS ((rtx *, void *)); static rtx split_insn PARAMS ((rtx)); @@ -1829,7 +1828,7 @@ asm_operand_ok (op, constraint) return the location (type rtx *) of the pointer to that constant term. Otherwise, return a null pointer. */ -static rtx * +rtx * find_constant_term_loc (p) rtx *p; { @@ -2015,52 +2014,6 @@ mode_independent_operand (op, mode) lose: ATTRIBUTE_UNUSED_LABEL return 0; } - -/* Given an operand OP that is a valid memory reference which - satisfies offsettable_memref_p, return a new memory reference whose - address has been adjusted by OFFSET. OFFSET should be positive and - less than the size of the object referenced. */ - -rtx -adj_offsettable_operand (op, offset) - rtx op; - int offset; -{ - register enum rtx_code code = GET_CODE (op); - - if (code == MEM) - { - register rtx y = XEXP (op, 0); - register rtx new; - - if (CONSTANT_ADDRESS_P (y)) - { - new = gen_rtx_MEM (GET_MODE (op), plus_constant (y, offset)); - MEM_COPY_ATTRIBUTES (new, op); - return new; - } - - if (GET_CODE (y) == PLUS) - { - rtx z = y; - register rtx *const_loc; - - op = copy_rtx (op); - z = XEXP (op, 0); - const_loc = find_constant_term_loc (&z); - if (const_loc) - { - *const_loc = plus_constant (*const_loc, offset); - return op; - } - } - - new = gen_rtx_MEM (GET_MODE (op), plus_constant (y, offset)); - MEM_COPY_ATTRIBUTES (new, op); - return new; - } - abort (); -} /* Like extract_insn, but save insn extracted and don't extract again, when called again for the same insn expecting that recog_data still contain the |