sh.md (cmpgtdi_t): Must be split.

* sh.md (cmpgtdi_t): Must be split.
	(cmpgtdi_t+1): New splitter.

From-SVN: r35257
This commit is contained in:
J"orn Rennecke 2000-07-25 22:10:38 +00:00 committed by Joern Rennecke
parent bc013f005f
commit 1987b7bcf6
2 changed files with 32 additions and 7 deletions

View File

@ -1,3 +1,8 @@
Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.md (cmpgtdi_t): Must be split.
(cmpgtdi_t+1): New splitter.
2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
* cpplib.c (_cpp_check_directive): Issue -Wtraditional

View File

@ -627,16 +627,36 @@
[(set (reg:SI 18) (eq:SI (match_operand:DI 0 "arith_reg_operand" "r,r")
(match_operand:DI 1 "arith_reg_or_0_operand" "N,r")))]
""
"*
return output_branchy_insn
(EQ,
(which_alternative
? \"cmp/eq\\t%S1,%S0\;bf\\t%l9\;cmp/eq\\t%R1,%R0\"
: \"tst\\t%S0,%S0\;bf\\t%l9\;tst\\t%R0,%R0\"),
insn, operands);"
"#"
[(set_attr "length" "6")
(set_attr "type" "arith3b")])
(define_split
[(set (reg:SI 18) (eq:SI (match_operand:DI 0 "arith_reg_operand" "r,r")
(match_operand:DI 1 "arith_reg_or_0_operand" "N,r")))]
"reload_completed"
[(set (reg:SI 18) (eq:SI (match_dup 2) (match_dup 3)))
(set (pc) (if_then_else (ne (reg:SI 18) (const_int 0))
(label_ref (match_dup 6))
(pc)))
(set (reg:SI 18) (eq:SI (match_dup 4) (match_dup 5)))
(match_dup 6)]
"
{
operands[2]
= gen_rtx_REG (SImode,
true_regnum (operands[0]) + (TARGET_LITTLE_ENDIAN ? 1 : 0));
operands[3]
= (operands[1] == const0_rtx
? const0_rtx
: gen_rtx_REG (SImode,
true_regnum (operands[1])
+ (TARGET_LITTLE_ENDIAN ? 1 : 0)));
operands[4] = gen_lowpart (SImode, operands[0]);
operands[5] = gen_lowpart (SImode, operands[1]);
operands[6] = gen_label_rtx ();
}")
(define_insn "cmpgtdi_t"
[(set (reg:SI 18) (gt:SI (match_operand:DI 0 "arith_reg_operand" "r,r")
(match_operand:DI 1 "arith_reg_or_0_operand" "r,N")))]