m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory and soft register for operand 0.
* config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory and soft register for operand 0. ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0. From-SVN: r44631
This commit is contained in:
parent
d8de89e827
commit
03997728b4
|
@ -1,3 +1,9 @@
|
||||||
|
2001-08-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||||
|
|
||||||
|
* config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
|
||||||
|
and soft register for operand 0.
|
||||||
|
("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
|
||||||
|
|
||||||
2001-08-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
2001-08-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||||
|
|
||||||
* config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
|
* config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
|
||||||
|
|
|
@ -303,13 +303,18 @@
|
||||||
(define_insn "cmphi_1"
|
(define_insn "cmphi_1"
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:HI 0 "tst_operand"
|
(compare (match_operand:HI 0 "tst_operand"
|
||||||
"xy,d,?xy,d,dxy,dxy,dxy")
|
"x,dy,xyd,?xy,d,m,!u,dxy,dxy")
|
||||||
(match_operand:HI 1 "cmp_operand"
|
(match_operand:HI 1 "cmp_operand"
|
||||||
"i,i,m,m,?*d*A,?u,!*w")))]
|
"i,i,!u,m,m,dxy,dxy,?*d*A,!*w")))]
|
||||||
""
|
""
|
||||||
"*
|
"*
|
||||||
{
|
{
|
||||||
if (H_REG_P (operands[1]))
|
if (H_REG_P (operands[1]) && !H_REG_P (operands[0]))
|
||||||
|
{
|
||||||
|
cc_status.flags |= CC_REVERSED;
|
||||||
|
return \"cp%1\\t%0\";
|
||||||
|
}
|
||||||
|
else if (H_REG_P (operands[1]))
|
||||||
return \"#\";
|
return \"#\";
|
||||||
else
|
else
|
||||||
return \"cp%0\\t%1\";
|
return \"cp%0\\t%1\";
|
||||||
|
@ -317,18 +322,18 @@
|
||||||
|
|
||||||
(define_insn "cmphi_z_used"
|
(define_insn "cmphi_z_used"
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:HI 0 "hard_reg_operand" "dxy")
|
(compare (match_operand:HI 0 "tst_operand" "dxy,m")
|
||||||
(match_operand:HI 1 "cmp_operand" "m")))
|
(match_operand:HI 1 "cmp_operand" "m,dxy")))
|
||||||
(use (match_operand:HI 2 "hard_reg_operand" "dxy"))
|
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
|
||||||
(use (reg:HI 11))]
|
(use (reg:HI 11))]
|
||||||
""
|
""
|
||||||
"#")
|
"#")
|
||||||
|
|
||||||
(define_split /* "cmphi_z_used" */
|
(define_split /* "cmphi_z_used" */
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:HI 0 "hard_reg_operand" "dxy")
|
(compare (match_operand:HI 0 "tst_operand" "dxy,m")
|
||||||
(match_operand:HI 1 "cmp_operand" "m")))
|
(match_operand:HI 1 "cmp_operand" "m,dxy")))
|
||||||
(use (match_operand:HI 2 "hard_reg_operand" "dxy"))
|
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
|
||||||
(use (reg:HI 11))]
|
(use (reg:HI 11))]
|
||||||
"z_replacement_completed == 2"
|
"z_replacement_completed == 2"
|
||||||
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
|
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
|
||||||
|
@ -479,29 +484,37 @@
|
||||||
|
|
||||||
(define_insn "cmpqi_1"
|
(define_insn "cmpqi_1"
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:QI 0 "tst_operand" "d,d,*x*y,*x*y")
|
(compare (match_operand:QI 0 "tst_operand" "d,m,d,!u,*B,d")
|
||||||
(match_operand:QI 1 "cmp_operand" "im,!u,!u,?dim*x*y")))]
|
(match_operand:QI 1 "cmp_operand" "im,d,!u,d,?dim*B,*u")))]
|
||||||
""
|
""
|
||||||
"@
|
"*
|
||||||
cmpb\\t%1
|
{
|
||||||
cmpb\\t%b1
|
if (A_REG_P (operands[0]) || A_REG_P (operands[1]))
|
||||||
#
|
{
|
||||||
#")
|
return \"#\";
|
||||||
|
}
|
||||||
|
else if (D_REG_P (operands[0]))
|
||||||
|
{
|
||||||
|
return \"cmpb\\t%b1\";
|
||||||
|
}
|
||||||
|
cc_status.flags |= CC_REVERSED;
|
||||||
|
return \"cmpb\\t%b0\";
|
||||||
|
}")
|
||||||
|
|
||||||
(define_insn "cmpqi_z_used"
|
(define_insn "cmpqi_z_used"
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:QI 0 "hard_reg_operand" "dxy")
|
(compare (match_operand:QI 0 "tst_operand" "dxy,m")
|
||||||
(match_operand:QI 1 "cmp_operand" "m")))
|
(match_operand:QI 1 "cmp_operand" "m,dxy")))
|
||||||
(use (match_operand:HI 2 "hard_reg_operand" "dxy"))
|
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
|
||||||
(use (reg:HI 11))]
|
(use (reg:HI 11))]
|
||||||
""
|
""
|
||||||
"#")
|
"#")
|
||||||
|
|
||||||
(define_split /* cmpqi_z_used */
|
(define_split /* cmpqi_z_used */
|
||||||
[(set (cc0)
|
[(set (cc0)
|
||||||
(compare (match_operand:QI 0 "hard_reg_operand" "dxy")
|
(compare (match_operand:QI 0 "tst_operand" "dxy,m")
|
||||||
(match_operand:QI 1 "cmp_operand" "m")))
|
(match_operand:QI 1 "cmp_operand" "m,dxy")))
|
||||||
(use (match_operand:HI 2 "hard_reg_operand" "dxy"))
|
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
|
||||||
(use (reg:HI 11))]
|
(use (reg:HI 11))]
|
||||||
"z_replacement_completed == 2"
|
"z_replacement_completed == 2"
|
||||||
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
|
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
|
||||||
|
|
Loading…
Reference in New Issue