+2003-12-03 Kazu Hirata <kazu@cs.umass.edu>
+
+ * 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 <echristo@redhat.com>
* rtl.c: Fix typo.
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);
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);
(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")])
(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")])
"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"
"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"