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/builtins.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/builtins.c')
-rw-r--r-- | gcc/builtins.c | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 4fc329f93d3..f6f76baba15 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -947,8 +947,7 @@ result_vector (savep, result) if (size % align != 0) size = CEIL (size, align) * align; reg = gen_rtx_REG (mode, savep ? regno : INCOMING_REGNO (regno)); - mem = change_address (result, mode, - plus_constant (XEXP (result, 0), size)); + mem = adjust_address (result, mode, size); savevec[nelts++] = (savep ? gen_rtx_SET (VOIDmode, mem, reg) : gen_rtx_SET (VOIDmode, reg, mem)); @@ -989,15 +988,12 @@ expand_builtin_apply_args_1 () tem = gen_rtx_REG (mode, INCOMING_REGNO (regno)); - emit_move_insn (change_address (registers, mode, - plus_constant (XEXP (registers, 0), - size)), - tem); + emit_move_insn (adjust_address (registers, mode, size), tem); size += GET_MODE_SIZE (mode); } /* Save the arg pointer to the block. */ - emit_move_insn (change_address (registers, Pmode, XEXP (registers, 0)), + emit_move_insn (adjust_address (registers, Pmode, 0), copy_to_reg (virtual_incoming_args_rtx)); size = GET_MODE_SIZE (Pmode); @@ -1005,9 +1001,7 @@ expand_builtin_apply_args_1 () "invisible" first argument. */ if (struct_value_incoming_rtx) { - emit_move_insn (change_address (registers, Pmode, - plus_constant (XEXP (registers, 0), - size)), + emit_move_insn (adjust_address (registers, Pmode, size), copy_to_reg (struct_value_incoming_rtx)); size += GET_MODE_SIZE (Pmode); } @@ -1124,11 +1118,7 @@ expand_builtin_apply (function, arguments, argsize) if (size % align != 0) size = CEIL (size, align) * align; reg = gen_rtx_REG (mode, regno); - emit_move_insn (reg, - change_address (arguments, mode, - plus_constant (XEXP (arguments, 0), - size))); - + emit_move_insn (reg, adjust_address (arguments, mode, size)); use_reg (&call_fusage, reg); size += GET_MODE_SIZE (mode); } @@ -1139,10 +1129,7 @@ expand_builtin_apply (function, arguments, argsize) if (struct_value_rtx) { rtx value = gen_reg_rtx (Pmode); - emit_move_insn (value, - change_address (arguments, Pmode, - plus_constant (XEXP (arguments, 0), - size))); + emit_move_insn (value, adjust_address (arguments, Pmode, size)); emit_move_insn (struct_value_rtx, value); if (GET_CODE (struct_value_rtx) == REG) use_reg (&call_fusage, struct_value_rtx); @@ -1186,9 +1173,7 @@ expand_builtin_apply (function, arguments, argsize) gen_rtx_MEM (FUNCTION_MODE, function), const0_rtx, NULL_RTX, const0_rtx)); - emit_move_insn (change_address (result, GET_MODE (valreg), - XEXP (result, 0)), - valreg); + emit_move_insn (adjust_address (result, GET_MODE (valreg), 0), valreg); } else #endif @@ -1264,10 +1249,7 @@ expand_builtin_return (result) if (size % align != 0) size = CEIL (size, align) * align; reg = gen_rtx_REG (mode, INCOMING_REGNO (regno)); - emit_move_insn (reg, - change_address (result, mode, - plus_constant (XEXP (result, 0), - size))); + emit_move_insn (reg, adjust_address (result, mode, size)); push_to_sequence (call_fusage); emit_insn (gen_rtx_USE (VOIDmode, reg)); |