h8300.c (push): Call gen_push_h8300hs_advanced instead of gen_push_h8300hs.

* 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.

From-SVN: r74267
This commit is contained in:
Kazu Hirata 2003-12-04 04:31:16 +00:00 committed by Kazu Hirata
parent ce6e2d9028
commit 32da7865f9
4 changed files with 25 additions and 11 deletions

View File

@ -1,3 +1,17 @@
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.

View File

@ -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);

View File

@ -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.

View File

@ -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"