diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-02 19:47:44 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-02 19:47:44 +0000 |
commit | e513d163d56b2f49519827c0cd01a960bef06b05 (patch) | |
tree | 35bfff21e3c73e0c27ad267a7d90a3719cfb86af /gcc/function.c | |
parent | a63a99295aac2510479552bbe9648df0bec724b2 (diff) | |
download | gcc-e513d163d56b2f49519827c0cd01a960bef06b05.tar.gz |
* emit-rtl.c (adjust_address): New function.
* expr.h (adjust_address): Add declaration.
* builtins.c: Replace some calls to change_address with calls to it
or to validize_mem.
* caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
* function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
* config/arm/arm.c, config/convex/convex.c: Likewise.
* config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
* config/i386/i386.c, config/i386/i386.md: Likewise.
* config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
* config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
* config/m88k/m88k.c, config/mips/mips.md: Likewise.
* config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
* config/sh/sh.c, config/sparc/sparc.md: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43702 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/gcc/function.c b/gcc/function.c index d14ffdbd5b9..8ab0037fcf3 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -2518,12 +2518,13 @@ fixup_memory_subreg (x, insn, uncritical) && ! uncritical) abort (); - addr = plus_constant (addr, offset); - if (!flag_force_addr && memory_address_p (mode, addr)) + if (!flag_force_addr + && memory_address_p (mode, plus_constant (addr, offset))) /* Shortcut if no insns need be emitted. */ - return change_address (SUBREG_REG (x), mode, addr); + return adjust_address (SUBREG_REG (x), mode, offset); + start_sequence (); - result = change_address (SUBREG_REG (x), mode, addr); + result = adjust_address (SUBREG_REG (x), mode, offset); emit_insn_before (gen_sequence (), insn); end_sequence (); return result; @@ -2721,8 +2722,7 @@ optimize_bit_field (body, insn, equiv_mem) } start_sequence (); - memref = change_address (memref, mode, - plus_constant (XEXP (memref, 0), offset)); + memref = adjust_address (memref, mode, offset); insns = get_insns (); end_sequence (); emit_insns_before (insns, insn); @@ -4987,11 +4987,9 @@ assign_parms (fndecl) entry_parm = convert_to_mode (nominal_mode, tempreg, TREE_UNSIGNED (TREE_TYPE (parm))); if (stack_parm) - { - /* ??? This may need a big-endian conversion on sparc64. */ - stack_parm = change_address (stack_parm, nominal_mode, - NULL_RTX); - } + /* ??? This may need a big-endian conversion on sparc64. */ + stack_parm = adjust_address (stack_parm, nominal_mode, 0); + conversion_insns = get_insns (); did_conversion = 1; end_sequence (); |