diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-07-02 19:47:44 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-07-02 15:47:44 -0400 |
commit | f4ef873c3108a163d7789b137b391c3853c25011 (patch) | |
tree | 35bfff21e3c73e0c27ad267a7d90a3719cfb86af /gcc/except.c | |
parent | 494fff4cea67e3d1415788d318fb4448cf9411c5 (diff) | |
download | gcc-f4ef873c3108a163d7789b137b391c3853c25011.zip gcc-f4ef873c3108a163d7789b137b391c3853c25011.tar.gz gcc-f4ef873c3108a163d7789b137b391c3853c25011.tar.bz2 |
emit-rtl.c (adjust_address): New function.
* 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.
From-SVN: r43702
Diffstat (limited to 'gcc/except.c')
-rw-r--r-- | gcc/except.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/gcc/except.c b/gcc/except.c index 90c0dc9..e298329 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2038,9 +2038,8 @@ sjlj_mark_call_sites (lp_info) int last_call_site = -2; rtx insn, mem; - mem = change_address (cfun->eh->sjlj_fc, TYPE_MODE (integer_type_node), - plus_constant (XEXP (cfun->eh->sjlj_fc, 0), - sjlj_fc_call_site_ofs)); + mem = adjust_address (cfun->eh->sjlj_fc, TYPE_MODE (integer_type_node), + sjlj_fc_call_site_ofs); for (insn = get_insns (); insn ; insn = NEXT_INSN (insn)) { @@ -2156,12 +2155,10 @@ sjlj_emit_function_enter (dispatch_label) calling it directly. Thus, we must call assemble_external_libcall here, as we can not depend on emit_library_call to do it for us. */ assemble_external_libcall (eh_personality_libfunc); - mem = change_address (fc, Pmode, - plus_constant (XEXP (fc, 0), sjlj_fc_personality_ofs)); + mem = adjust_address (fc, Pmode, sjlj_fc_personality_ofs); emit_move_insn (mem, eh_personality_libfunc); - mem = change_address (fc, Pmode, - plus_constant (XEXP (fc, 0), sjlj_fc_lsda_ofs)); + mem = adjust_address (fc, Pmode, sjlj_fc_lsda_ofs); if (cfun->uses_eh_lsda) { char buf[20]; @@ -2258,12 +2255,11 @@ sjlj_emit_dispatch_table (dispatch_label, lp_info) /* Load up dispatch index, exc_ptr and filter values from the function context. */ - mem = change_address (fc, TYPE_MODE (integer_type_node), - plus_constant (XEXP (fc, 0), sjlj_fc_call_site_ofs)); + mem = adjust_address (fc, TYPE_MODE (integer_type_node), + sjlj_fc_call_site_ofs); dispatch = copy_to_reg (mem); - mem = change_address (fc, word_mode, - plus_constant (XEXP (fc, 0), sjlj_fc_data_ofs)); + mem = adjust_address (fc, word_mode, sjlj_fc_data_ofs); if (word_mode != Pmode) { #ifdef POINTERS_EXTEND_UNSIGNED @@ -2274,9 +2270,7 @@ sjlj_emit_dispatch_table (dispatch_label, lp_info) } emit_move_insn (cfun->eh->exc_ptr, mem); - mem = change_address (fc, word_mode, - plus_constant (XEXP (fc, 0), - sjlj_fc_data_ofs + UNITS_PER_WORD)); + mem = adjust_address (fc, word_mode, sjlj_fc_data_ofs + UNITS_PER_WORD); emit_move_insn (cfun->eh->filter, mem); /* Jump to one of the directly reachable regions. */ |