mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 20:20:26 +08:00
sh.md (is_sfunc): New attribute.
* sh.md (is_sfunc): New attribute. * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it. From-SVN: r25152
This commit is contained in:
parent
9a95b64adf
commit
0603a39d29
@ -1,3 +1,8 @@
|
||||
Thu Feb 11 15:20:49 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* sh.md (is_sfunc): New attribute.
|
||||
* sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
|
||||
|
||||
Thu Feb 11 01:06:49 1999 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* fold-const.c (range_binop): Take account of the bounded nature
|
||||
|
@ -1636,7 +1636,7 @@ extern struct rtx_def *sh_builtin_saveregs ();
|
||||
which set the argument registers into the delay slot of the millicode
|
||||
call -- thus they act more like traditional CALL_INSNs.
|
||||
|
||||
get_attr_type will try to recognize the given insn, so make sure to
|
||||
get_attr_is_sfunc will try to recognize the given insn, so make sure to
|
||||
filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns
|
||||
in particular. */
|
||||
|
||||
@ -1645,14 +1645,14 @@ extern struct rtx_def *sh_builtin_saveregs ();
|
||||
&& GET_CODE (PATTERN (X)) != SEQUENCE \
|
||||
&& GET_CODE (PATTERN (X)) != USE \
|
||||
&& GET_CODE (PATTERN (X)) != CLOBBER \
|
||||
&& get_attr_type (X) == TYPE_SFUNC))
|
||||
&& get_attr_is_sfunc (X)))
|
||||
|
||||
#define INSN_REFERENCES_ARE_DELAYED(X) \
|
||||
((GET_CODE (X) == INSN \
|
||||
&& GET_CODE (PATTERN (X)) != SEQUENCE \
|
||||
&& GET_CODE (PATTERN (X)) != USE \
|
||||
&& GET_CODE (PATTERN (X)) != CLOBBER \
|
||||
&& get_attr_type (X) == TYPE_SFUNC))
|
||||
&& get_attr_is_sfunc (X)))
|
||||
|
||||
/* Compute the cost of an address. For the SH, all valid addresses are
|
||||
the same cost. */
|
||||
|
@ -482,6 +482,9 @@
|
||||
(eq_attr "length" "2") (const_string "yes")
|
||||
] (const_string "no")))
|
||||
|
||||
(define_attr "is_sfunc" ""
|
||||
(if_then_else (eq_attr "type" "sfunc") (const_int 1) (const_int 0)))
|
||||
|
||||
(define_delay
|
||||
(eq_attr "needs_delay_slot" "yes")
|
||||
[(eq_attr "in_delay_slot" "yes") (nil) (nil)])
|
||||
|
Loading…
Reference in New Issue
Block a user