diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-14 07:29:54 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-05-14 07:29:54 +0000 |
commit | 2efea8c0b1762fe1cce2b5bd1f599f31d074d148 (patch) | |
tree | d2bbeaff6d2da3e0971a4f5d54c7cba68cd26692 /gcc/config/m68hc11 | |
parent | 87a1da8d641b8769b808ab2e806027e237261a23 (diff) | |
download | gcc-2efea8c0b1762fe1cce2b5bd1f599f31d074d148.tar.gz |
* target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define.
(TARGET_INITIALIZER): Include it.
* target.h (struct gcc_target): Add machine_dependent_reorg field.
* toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg.
* config/alpha/alpha-protos.h (alpha_reorg): Remove declaration.
* config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove.
* config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(alpha_handle_trap_shadows): Remove "first insn" parameter.
(alpha_align_insns): Likewise.
(alpha_reorg): Likewise. Make static. Update calls to above
functions.
* config/arm/arm-protos.h (arm_reorg): Remove declaration.
* config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove.
* config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(arm_reorg): Remove parameter. Make static.
* config/avr/avr-protos.h (machine_dependent_reorg): Remove.
* config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove.
* config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(avr_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
* config/c4x/c4x-protos.h (c4x_process_after_reload): Remove.
* config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove.
* config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(c4x_reorg): Renamed from c4x_process_after_reload. Make static.
Remove parameter.
* config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove.
* config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove.
* config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove.
* config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove.
* config/frv/frv.c: Remove orphaned comment.
* config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove.
* config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove.
* config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(ix86_reorg): Renamed from x86_machine_dependent_reorg. Make static.
Remove parameter.
* config/ia64/ia64-protos.h (ia64_reorg): Remove declaration.
* config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove.
* config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(emit_insn_group_barriers): Remove "first insn" parameter.
(emit_all_insn_group_barriers): Likewise.
(ia64_reorg): Likewise. Make static. Update calls to above functions.
(ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers.
* config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove.
* config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove.
* config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(ip2k_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
* config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration.
* config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove.
* config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(m68hc11_reorg): Make static. Remove parameter.
* config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove.
* config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(conditionalize_optimization): Remove parameter.
(mcore_reorg): Renamed from mcore_dependent_reorg. Remove parameter.
Make static. Update call to conditionalize_optimization.
* config/mips/mips-protos.h (machine_dependent_reorg): Remove.
* config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(mips_reorg): Renamed from machine_dependent_reorg. Remove parameter.
Make static.
* config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove.
* config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove.
* config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(mmix_reorg): Renamed from mmix_machine_dependent_reorg. Make static.
Remove parameter.
* config/pa/pa-protos.h (pa_reorg): Remove declaration.
* config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove.
* config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(pa_combine_instructions): Remove "first insn" parameter.
(remove_useless_addtr_insns): Likewise.
(pa_reorg): Likewise. Make static. Update calls to above functions.
* config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove
commented-out definition.
* config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove.
* config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove.
* config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(s390_reorg): Renamed from s390_machine_dependent_reorg. Make static.
Remove parameter.
* config/sh/sh-protos.h (machine_dependent_reorg): Remove.
* config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove.
* config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(sh_reorg): Renamed from machine_dependent_reorg. Make static.
Remove parameter.
(sh_output_mi_thunk): Call sh_reorg directly.
* config/sh/sh.md: Update comment.
* config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove
commented-out definition.
* config/v850/v850-protos.h (v850_reorg): Remove declaration.
* config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove.
* config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(v850_reorg): Make static. Remove parameter.
* config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration.
* config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove.
* config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(xtensa_reorg): Make static. Remove parameter.
* doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove.
(TARGET_MACHINE_DEPENDENT_REORG): Document.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66800 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68hc11')
-rw-r--r-- | gcc/config/m68hc11/m68hc11-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 20 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.h | 9 |
3 files changed, 16 insertions, 15 deletions
diff --git a/gcc/config/m68hc11/m68hc11-protos.h b/gcc/config/m68hc11/m68hc11-protos.h index 3c814d73ece..d2d53388b4b 100644 --- a/gcc/config/m68hc11/m68hc11-protos.h +++ b/gcc/config/m68hc11/m68hc11-protos.h @@ -58,8 +58,6 @@ extern int m68hc11_legitimize_address PARAMS((rtx*, rtx, enum machine_mode)); extern void m68hc11_notice_update_cc PARAMS((rtx, rtx)); extern void m68hc11_notice_keep_cc PARAMS((rtx)); -extern void m68hc11_reorg PARAMS((rtx)); - extern void m68hc11_gen_movqi PARAMS((rtx, rtx*)); extern void m68hc11_gen_movhi PARAMS((rtx, rtx*)); extern void m68hc11_gen_rotate PARAMS((enum rtx_code, rtx, rtx*)); diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 1a129d1c43d..dbc43408837 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -62,6 +62,7 @@ static void print_options PARAMS ((FILE *)); static void emit_move_after_reload PARAMS ((rtx, rtx, rtx)); static rtx simplify_logical PARAMS ((enum machine_mode, int, rtx, rtx *)); static void m68hc11_emit_logical PARAMS ((enum machine_mode, int, rtx *)); +static void m68hc11_reorg PARAMS ((void)); static int go_if_legitimate_address_internal PARAMS((rtx, enum machine_mode, int)); static int register_indirect_p PARAMS((rtx, enum machine_mode, int)); @@ -237,6 +238,9 @@ static int nb_soft_regs; #undef TARGET_ADDRESS_COST #define TARGET_ADDRESS_COST m68hc11_address_cost +#undef TARGET_MACHINE_DEPENDENT_REORG +#define TARGET_MACHINE_DEPENDENT_REORG m68hc11_reorg + struct gcc_target targetm = TARGET_INITIALIZER; int @@ -5184,15 +5188,23 @@ m68hc11_reassign_regs (first) } -void -m68hc11_reorg (first) - rtx first; +/* Machine-dependent reorg pass. + Specific optimizations are defined here: + - this pass changes the Z register into either X or Y + (it preserves X/Y previous values in a memory slot in page0). + + When this pass is finished, the global variable + 'z_replacement_completed' is set to 2. */ + +static void +m68hc11_reorg () { int split_done = 0; - rtx insn; + rtx insn, first; z_replacement_completed = 0; z_reg = gen_rtx (REG, HImode, HARD_Z_REGNUM); + first = get_insns (); /* Some RTX are shared at this point. This breaks the Z register replacement, unshare everything. */ diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h index 0801972c176..fc9f02a446d 100644 --- a/gcc/config/m68hc11/m68hc11.h +++ b/gcc/config/m68hc11/m68hc11.h @@ -1709,15 +1709,6 @@ do { \ /* Allow $ in identifiers */ #define DOLLARS_IN_IDENTIFIERS 1 -/* Machine-dependent reorg pass. - Specific optimizations are defined here: - - this pass changes the Z register into either X or Y - (it preserves X/Y previous values in a memory slot in page0). - - When this pass is finished, the global variable - 'z_replacement_completed' is set to 2. */ -#define MACHINE_DEPENDENT_REORG(X) m68hc11_reorg (X) - extern int debug_m6811; extern int z_replacement_completed; extern int current_function_interrupt; |