MSP430: Fix postinc addressing mode being used for dst op of CMP insns

2019-12-05  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/msp430.md (cbranch<mode>4): Use
	msp430_general_dst_nonv_operand instead of nonimmediate_operand for
	dest operand of CMP instruction.
	(cbranchpsi4_real): Likewise.
	(cbranchqi4_real): Likewise.
	(cbranchhi4_real): Likewise.
	(cbranchpsi4_reversed): Likewise.
	(cbranchqi4_reversed): Likewise.
	(cbranchhi4_reversed): Likewise.

From-SVN: r278994
This commit is contained in:
Jozef Lawrynowicz 2019-12-05 10:56:02 +00:00 committed by Jozef Lawrynowicz
parent b24c77958a
commit 6ff8ab6a14
2 changed files with 19 additions and 7 deletions

View File

@ -1,3 +1,15 @@
2019-12-05 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* config/msp430/msp430.md (cbranch<mode>4): Use
msp430_general_dst_nonv_operand instead of nonimmediate_operand for
dest operand of CMP instruction.
(cbranchpsi4_real): Likewise.
(cbranchqi4_real): Likewise.
(cbranchhi4_real): Likewise.
(cbranchpsi4_reversed): Likewise.
(cbranchqi4_reversed): Likewise.
(cbranchhi4_reversed): Likewise.
2019-12-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/92803

View File

@ -1247,7 +1247,7 @@
(define_expand "cbranch<mode>4"
[(parallel [(set (pc) (if_then_else
(match_operator 0 ""
[(match_operand:QHI 1 "nonimmediate_operand")
[(match_operand:QHI 1 "msp430_general_dst_nonv_operand")
(match_operand:QHI 2 "general_operand")])
(label_ref (match_operand 3 "" ""))
(pc)))
@ -1260,7 +1260,7 @@
(define_insn "cbranchpsi4_real"
[(set (pc) (if_then_else
(match_operator 0 "msp430_cmp_operator"
[(match_operand:PSI 1 "nonimmediate_operand" "r,rYs,rm")
[(match_operand:PSI 1 "msp430_general_dst_nonv_operand" "r,rYs,rm")
(match_operand:PSI 2 "general_operand" "rLs,rYsi,rmi")])
(label_ref (match_operand 3 "" ""))
(pc)))
@ -1276,7 +1276,7 @@
(define_insn "cbranchqi4_real"
[(set (pc) (if_then_else
(match_operator 0 "msp430_cmp_operator"
[(match_operand:QI 1 "nonimmediate_operand" "rYsYx,rm")
[(match_operand:QI 1 "msp430_general_dst_nonv_operand" "rYsYx,rm")
(match_operand:QI 2 "general_operand" "rYsYxi,rmi")])
(label_ref (match_operand 3 "" ""))
(pc)))
@ -1291,7 +1291,7 @@
(define_insn "cbranchhi4_real"
[(set (pc) (if_then_else
(match_operator 0 "msp430_cmp_operator"
[(match_operand:HI 1 "nonimmediate_operand" "rYsYx,rm")
[(match_operand:HI 1 "msp430_general_dst_nonv_operand" "rYsYx,rm")
(match_operand:HI 2 "general_operand" "rYsYxi,rmi")])
(label_ref (match_operand 3 "" ""))
(pc)))
@ -1330,7 +1330,7 @@
[(set (pc) (if_then_else
(match_operator 0 "msp430_reversible_cmp_operator"
[(match_operand:PSI 1 "general_operand" "rLs,rYsi,rmi")
(match_operand:PSI 2 "general_operand" "r,rYs,rm")])
(match_operand:PSI 2 "msp430_general_dst_nonv_operand" "r,rYs,rm")])
(label_ref (match_operand 3 "" ""))
(pc)))
(clobber (reg:BI CARRY))
@ -1346,7 +1346,7 @@
[(set (pc) (if_then_else
(match_operator 0 "msp430_reversible_cmp_operator"
[(match_operand:QI 1 "general_operand" "rYsYxi,rmi")
(match_operand:QI 2 "general_operand" "rYsYx,rm")])
(match_operand:QI 2 "msp430_general_dst_nonv_operand" "rYsYx,rm")])
(label_ref (match_operand 3 "" ""))
(pc)))
(clobber (reg:BI CARRY))
@ -1361,7 +1361,7 @@
[(set (pc) (if_then_else
(match_operator 0 "msp430_reversible_cmp_operator"
[(match_operand:HI 1 "general_operand" "rYsYxi,rmi")
(match_operand:HI 2 "general_operand" "rYsYx,rm")])
(match_operand:HI 2 "msp430_general_dst_nonv_operand" "rYsYx,rm")])
(label_ref (match_operand 3 "" ""))
(pc)))
(clobber (reg:BI CARRY))