From 347121147b207de696152992273d844f829ff23d Mon Sep 17 00:00:00 2001 From: kazu Date: Thu, 4 Dec 2003 04:31:16 +0000 Subject: [PATCH] * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced instead of gen_push_h8300hs. (pop): Call gen_pop_h8300hs_advanced instead of gen_pop_h8300hs. * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. * config/h8300/h8300.md (*tablejump_h8300hs_advanced): Tighten the predicate. (*tablejump_h8300hs_normal): Tighten the predicate. (push_h8300hs): Change to push_h8300hs_advanced. (pop_h8300hs): Change to pop_h8300hs_advanced. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74267 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 14 ++++++++++++++ gcc/config/h8300/h8300.c | 4 ++-- gcc/config/h8300/h8300.h | 2 +- gcc/config/h8300/h8300.md | 16 ++++++++-------- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 738464f..e6d2e6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2003-12-03 Kazu Hirata + + * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced + instead of gen_push_h8300hs. + (pop): Call gen_pop_h8300hs_advanced instead of + gen_pop_h8300hs. + * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. + * config/h8300/h8300.md (*tablejump_h8300hs_advanced): + Tighten the predicate. + (*tablejump_h8300hs_normal): Tighten the predicate. + (push_h8300hs): Change to + push_h8300hs_advanced. + (pop_h8300hs): Change to pop_h8300hs_advanced. + 2003-12-03 Eric Christopher * rtl.c: Fix typo. diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index f9754e4..ed3cc08 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -435,7 +435,7 @@ push (int rn) if (TARGET_H8300) x = gen_push_h8300 (reg); else if (!TARGET_NORMAL_MODE) - x = gen_push_h8300hs (reg); + x = gen_push_h8300hs_advanced (reg); else x = gen_push_h8300hs_normal (reg); x = emit_insn (x); @@ -453,7 +453,7 @@ pop (int rn) if (TARGET_H8300) x = gen_pop_h8300 (reg); else if (!TARGET_NORMAL_MODE) - x = gen_pop_h8300hs (reg); + x = gen_pop_h8300hs_advanced (reg); else x = gen_pop_h8300hs_normal (reg); x = emit_insn (x); diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index c377b57..b60fc52 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -735,7 +735,7 @@ struct cum_arg /* Length in units of the trampoline for entering a nested function. */ -#define TRAMPOLINE_SIZE ((TARGET_H8300 || TARGET_NORMAL_MODE) ? 8 : 12) +#define TRAMPOLINE_SIZE ((Pmode == HImode) ? 8 : 12) /* Emit RTL insns to build a trampoline. FNADDR is an RTX for the address of the function's pure code. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 5a9d6ad..9743308 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1763,7 +1763,7 @@ (define_insn "*tablejump_h8300hs_advanced" [(set (pc) (match_operand:SI 0 "register_operand" "r")) (use (label_ref (match_operand 1 "" "")))] - "TARGET_H8300H || TARGET_H8300S" + "(TARGET_H8300H || TARGET_H8300S) && !TARGET_NORMAL_MODE" "jmp @%0" [(set_attr "cc" "none") (set_attr "length" "2")]) @@ -1792,7 +1792,7 @@ (define_insn "*indirect_jump_h8300hs_advanced" [(set (pc) (match_operand:SI 0 "jump_address_operand" "Vr"))] - "TARGET_H8300H || TARGET_H8300S" + "(TARGET_H8300H || TARGET_H8300S) && !TARGET_NORMAL_MODE" "jmp @%0" [(set_attr "cc" "none") (set_attr "length" "2")]) @@ -1867,16 +1867,16 @@ "TARGET_H8300" "") -(define_expand "push_h8300hs" +(define_expand "push_h8300hs_advanced" [(set (mem:SI (pre_dec:SI (reg:SI SP_REG))) (match_operand:SI 0 "register_operand" ""))] - "TARGET_H8300H && TARGET_H8300S" + "TARGET_H8300H && TARGET_H8300S && !TARGET_NORMAL_MODE" "") (define_expand "push_h8300hs_normal" [(set (mem:SI (pre_dec:HI (reg:HI SP_REG))) (match_operand:SI 0 "register_operand" ""))] - "TARGET_NORMAL_MODE" + "TARGET_H8300H && TARGET_H8300S && TARGET_NORMAL_MODE" "") (define_expand "pop_h8300" @@ -1885,16 +1885,16 @@ "TARGET_H8300" "") -(define_expand "pop_h8300hs" +(define_expand "pop_h8300hs_advanced" [(set (match_operand:SI 0 "register_operand" "") (mem:SI (post_inc:SI (reg:SI SP_REG))))] - "TARGET_H8300H && TARGET_H8300S" + "TARGET_H8300H && TARGET_H8300S && !TARGET_NORMAL_MODE" "") (define_expand "pop_h8300hs_normal" [(set (match_operand:SI 0 "register_operand" "") (mem:SI (post_inc:HI (reg:HI SP_REG))))] - "TARGET_NORMAL_MODE" + "TARGET_H8300H && TARGET_H8300S && TARGET_NORMAL_MODE" "") (define_insn "stm_h8300s_2_advanced" -- 2.7.4