mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 06:50:27 +08:00
msp430.md (movqi): replace general_operand with msp_general_operand and nonimmediate_operand with...
* config/msp430/msp430.md (movqi): replace general_operand with msp_general_operand and nonimmediate_operand with msp_nonimmediate_operand to allow volatile operands. (movhi): Likewise. (movpsi): Likewise. (addpsi3): Likewise. (addhi3): Likewise. (addhi3_cy): Likewise. (addchi4_cy): Likewise. (xor<mode>3): Likewise. (ome_cmpl<mode>2): Likewise. (extendqihi2): Likewise. (zero_extendqihi2): Likewise. (zero_extendhipsi2): Likewise. (truncpsihi2): Likewise. (srai_1): Likewise. From-SVN: r205977
This commit is contained in:
parent
4cd3c67de7
commit
a3b50977d9
@ -1,3 +1,22 @@
|
||||
2013-12-13 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* config/msp430/msp430.md (movqi): replace general_operand with
|
||||
msp_general_operand and nonimmediate_operand with
|
||||
msp_nonimmediate_operand to allow volatile operands.
|
||||
(movhi): Likewise.
|
||||
(movpsi): Likewise.
|
||||
(addpsi3): Likewise.
|
||||
(addhi3): Likewise.
|
||||
(addhi3_cy): Likewise.
|
||||
(addchi4_cy): Likewise.
|
||||
(xor<mode>3): Likewise.
|
||||
(ome_cmpl<mode>2): Likewise.
|
||||
(extendqihi2): Likewise.
|
||||
(zero_extendqihi2): Likewise.
|
||||
(zero_extendhipsi2): Likewise.
|
||||
(truncpsihi2): Likewise.
|
||||
(srai_1): Likewise.
|
||||
|
||||
2013-12-13 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* ira.h (struct ira_reg_equiv): Rename to ira_reg_equiv_s.
|
||||
|
@ -172,8 +172,8 @@
|
||||
)
|
||||
|
||||
(define_insn "movqi"
|
||||
[(set (match_operand:QI 0 "nonimmediate_operand" "=rYs,rm")
|
||||
(match_operand:QI 1 "general_operand" "riYs,rmi"))]
|
||||
[(set (match_operand:QI 0 "msp_nonimmediate_operand" "=rYs,rm")
|
||||
(match_operand:QI 1 "msp_general_operand" "riYs,rmi"))]
|
||||
""
|
||||
"@
|
||||
MOV.B\t%1, %0
|
||||
@ -181,8 +181,8 @@
|
||||
)
|
||||
|
||||
(define_insn "movhi"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rYs,rm")
|
||||
(match_operand:HI 1 "general_operand" "riYs,rmi"))]
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rYs,rm")
|
||||
(match_operand:HI 1 "msp_general_operand" "riYs,rmi"))]
|
||||
""
|
||||
"@
|
||||
MOV.W\t%1, %0
|
||||
@ -211,8 +211,8 @@
|
||||
|
||||
;; Some MOVX.A cases can be done with MOVA, this is only a few of them.
|
||||
(define_insn "movpsi"
|
||||
[(set (match_operand:PSI 0 "nonimmediate_operand" "=r,Ya,rm")
|
||||
(match_operand:PSI 1 "general_operand" "riYa,r,rmi"))]
|
||||
[(set (match_operand:PSI 0 "msp_nonimmediate_operand" "=r,Ya,rm")
|
||||
(match_operand:PSI 1 "msp_general_operand" "riYa,r,rmi"))]
|
||||
""
|
||||
"@
|
||||
MOV%A0\t%1, %0
|
||||
@ -237,9 +237,9 @@
|
||||
;; Math
|
||||
|
||||
(define_insn "addpsi3"
|
||||
[(set (match_operand:PSI 0 "nonimmediate_operand" "=r,rm")
|
||||
(plus:PSI (match_operand:PSI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:PSI 2 "general_operand" "rLs,rmi")))]
|
||||
[(set (match_operand:PSI 0 "msp_nonimmediate_operand" "=r,rm")
|
||||
(plus:PSI (match_operand:PSI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:PSI 2 "msp_general_operand" "rLs,rmi")))]
|
||||
""
|
||||
"@
|
||||
ADDA\t%2, %0
|
||||
@ -247,9 +247,9 @@
|
||||
)
|
||||
|
||||
(define_insn "addqi3"
|
||||
[(set (match_operand:QI 0 "nonimmediate_operand" "=rYs,rm")
|
||||
(plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:QI 2 "general_operand" "riYs,rmi")))]
|
||||
[(set (match_operand:QI 0 "msp_nonimmediate_operand" "=rYs,rm")
|
||||
(plus:QI (match_operand:QI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:QI 2 "msp_general_operand" "riYs,rmi")))]
|
||||
""
|
||||
"@
|
||||
ADD.B\t%2, %0
|
||||
@ -257,9 +257,9 @@
|
||||
)
|
||||
|
||||
(define_insn "addhi3"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rYs,rm")
|
||||
(plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "general_operand" "riYs,rmi")))]
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rYs,rm")
|
||||
(plus:HI (match_operand:HI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "msp_general_operand" "riYs,rmi")))]
|
||||
""
|
||||
"@
|
||||
ADD.W\t%2, %0
|
||||
@ -316,9 +316,9 @@
|
||||
; that are not single_set() very well.
|
||||
|
||||
(define_insn "addhi3_cy"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm")
|
||||
(plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "general_operand" "r,rm")))
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=r,rm")
|
||||
(plus:HI (match_operand:HI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "msp_general_operand" "r,rm")))
|
||||
(set (reg:BI CARRY)
|
||||
(truncate:BI (lshiftrt:SI (plus:SI (zero_extend:SI (match_dup 1))
|
||||
(zero_extend:SI (match_dup 2)))
|
||||
@ -347,9 +347,9 @@
|
||||
|
||||
; Version of addhi that adds the carry, for SImode adds.
|
||||
(define_insn "addchi4_cy"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm")
|
||||
(plus:HI (plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "general_operand" "ri,rmi"))
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=r,rm")
|
||||
(plus:HI (plus:HI (match_operand:HI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:HI 2 "msp_general_operand" "ri,rmi"))
|
||||
(zero_extend:HI (reg:BI CARRY))))
|
||||
]
|
||||
""
|
||||
@ -487,9 +487,9 @@
|
||||
)
|
||||
|
||||
(define_insn "xor<mode>3"
|
||||
[(set (match_operand:QHI 0 "nonimmediate_operand" "=rYs,rm")
|
||||
(xor:QHI (match_operand:QHI 1 "nonimmediate_operand" "%0,0")
|
||||
(match_operand:QHI 2 "general_operand" "riYs,rmi")))]
|
||||
[(set (match_operand:QHI 0 "msp_nonimmediate_operand" "=rYs,rm")
|
||||
(xor:QHI (match_operand:QHI 1 "msp_nonimmediate_operand" "%0,0")
|
||||
(match_operand:QHI 2 "msp_general_operand" "riYs,rmi")))]
|
||||
""
|
||||
"@
|
||||
XOR%x0%B0\t%2, %0
|
||||
@ -498,8 +498,8 @@
|
||||
|
||||
;; Macro : XOR #~0, %0
|
||||
(define_insn "one_cmpl<mode>2"
|
||||
[(set (match_operand:QHI 0 "nonimmediate_operand" "=rYs,m")
|
||||
(not:QHI (match_operand:QHI 1 "nonimmediate_operand" "0,0")))]
|
||||
[(set (match_operand:QHI 0 "msp_nonimmediate_operand" "=rYs,m")
|
||||
(not:QHI (match_operand:QHI 1 "msp_nonimmediate_operand" "0,0")))]
|
||||
""
|
||||
"@
|
||||
INV%x0%B0\t%0
|
||||
@ -507,8 +507,8 @@
|
||||
)
|
||||
|
||||
(define_insn "extendqihi2"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rYs,m")
|
||||
(sign_extend:HI (match_operand:QI 1 "nonimmediate_operand" "0,0")))]
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rYs,m")
|
||||
(sign_extend:HI (match_operand:QI 1 "msp_nonimmediate_operand" "0,0")))]
|
||||
""
|
||||
"@
|
||||
SXT%X0\t%0
|
||||
@ -516,8 +516,8 @@
|
||||
)
|
||||
|
||||
(define_insn "zero_extendqihi2"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rYs,m")
|
||||
(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "0,0")))]
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rYs,m")
|
||||
(zero_extend:HI (match_operand:QI 1 "msp_nonimmediate_operand" "0,0")))]
|
||||
""
|
||||
"@
|
||||
AND\t#0xff, %0
|
||||
@ -536,14 +536,14 @@
|
||||
)
|
||||
|
||||
(define_insn "zero_extendhipsi2"
|
||||
[(set (match_operand:PSI 0 "nonimmediate_operand" "=r,m")
|
||||
(zero_extend:PSI (match_operand:HI 1 "nonimmediate_operand" "rm,r")))]
|
||||
[(set (match_operand:PSI 0 "msp_nonimmediate_operand" "=r,m")
|
||||
(zero_extend:PSI (match_operand:HI 1 "msp_nonimmediate_operand" "rm,r")))]
|
||||
""
|
||||
"MOVX\t%1, %0"
|
||||
)
|
||||
|
||||
(define_insn "truncpsihi2"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rm")
|
||||
(truncate:HI (match_operand:PSI 1 "register_operand" "r")))]
|
||||
""
|
||||
"MOVX\t%1, %0"
|
||||
@ -769,8 +769,8 @@
|
||||
)
|
||||
|
||||
(define_insn "srai_1"
|
||||
[(set (match_operand:HI 0 "nonimmediate_operand" "=rm")
|
||||
(ashiftrt:HI (match_operand:HI 1 "general_operand" "0")
|
||||
[(set (match_operand:HI 0 "msp_nonimmediate_operand" "=rm")
|
||||
(ashiftrt:HI (match_operand:HI 1 "msp_general_operand" "0")
|
||||
(const_int 1)))]
|
||||
""
|
||||
"RRA.W\t%0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user