diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1995-05-23 14:37:52 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1995-05-23 14:37:52 -0700 |
commit | e33915104685e7c3c0ab74e402d859baabee6a24 (patch) | |
tree | ef35b93ca5cf15d9a2bbefbdecfaffb142dccbd2 /gcc | |
parent | 5b5187b3671667b275e2821555b44074b4d35f00 (diff) | |
download | gcc-e33915104685e7c3c0ab74e402d859baabee6a24.zip gcc-e33915104685e7c3c0ab74e402d859baabee6a24.tar.gz gcc-e33915104685e7c3c0ab74e402d859baabee6a24.tar.bz2 |
(sett): New pattern.
(movsi_i): Change source constraint for move to T reg to be 'z'.
From-SVN: r9783
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sh/sh.md | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 86cdd6b..70d32ea 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -982,14 +982,22 @@ [(set_attr "type" "load,pload,load") (set_attr "hit_stack" "yes")]) +;; These two patterns can happen as the result of optimization, when +;; comparisons get simplified to a move of zero or 1 into the T reg. +;; They don't disappear completely, because the T reg is a fixed hard reg. (define_insn "clrt" [(set (reg:SI 18) (const_int 0))] "" "clrt") +(define_insn "sett" + [(set (reg:SI 18) (const_int 1))] + "" + "sett") + (define_insn "movsi_i" [(set (match_operand:SI 0 "general_movdst_operand" "=r,r,r,r,r,m,<,xl,xl,t,r") - (match_operand:SI 1 "general_movsrc_operand" "Q,rI,m,xl,t,r,xl,r,>,r,i"))] + (match_operand:SI 1 "general_movsrc_operand" "Q,rI,m,xl,t,r,xl,r,>,z,i"))] "register_operand (operands[0], SImode) || register_operand (operands[1], SImode)" "@ |