Commit 324e52cc by Torbjorn Granlund

(definition of "type"): Add "jmpreg" as new type.

Change "mtlr" to "mtjmpr".
(movsi matcher): Pair `c' and `l' in the same constraint alternative.
(return): Set attribute to "jmpreg".
(indirect_jump): Likewise.

From-SVN: r6534
parent 5c5e36c5
......@@ -22,7 +22,7 @@
;; Define an insn type attribute. This is used in function unit delay
;; computations.
(define_attr "type" "integer,load,fpload,imul,idiv,branch,compare,delayed_compare,fpcompare,mtlr,fp,dmul,sdiv,ddiv,ssqrt,dsqrt"
(define_attr "type" "integer,load,fpload,imul,idiv,branch,compare,delayed_compare,fpcompare,mtjmpr,fp,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg"
(const_string "integer"))
;; Length (in bytes).
......@@ -104,12 +104,12 @@
4 0)
(define_function_unit "bpu" 1 0
(and (eq_attr "type" "mtlr")
(and (eq_attr "type" "mtjmpr")
(eq_attr "cpu" "rios1,rios2"))
5 0)
(define_function_unit "bpu" 1 0
(and (eq_attr "type" "mtlr")
(and (eq_attr "type" "mtjmpr")
(eq_attr "cpu" "ppc601,ppc603,ppc604,ppc620"))
4 0)
......@@ -2866,7 +2866,7 @@
}")
(define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,r,r,r,*c*q,*l,*h")
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,r,r,r,*q,*c*l,*h")
(match_operand:SI 1 "input_operand" "r,m,r,I,J,*h,r,r,0"))]
"TARGET_POWER && (gpc_reg_operand (operands[0], SImode)
|| gpc_reg_operand (operands[1], SImode))"
......@@ -2880,7 +2880,7 @@
mt%0 %1
mt%0 %1
cror 0,0,0"
[(set_attr "type" "*,load,*,*,*,*,*,mtlr,*")])
[(set_attr "type" "*,load,*,*,*,*,*,mtjmpr,*")])
(define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m,r,r,r,*h")
......@@ -5492,14 +5492,16 @@
(define_insn "return"
[(return)]
"direct_return ()"
"{br|blr}")
"{br|blr}"
[(set_attr "type" "jmpreg")])
(define_insn "indirect_jump"
[(set (pc) (match_operand:SI 0 "register_operand" "c,l"))]
""
"@
bctr
{br|blr}")
{br|blr}"
[(set_attr "type" "jmpreg")])
;; Table jump for switch statements:
(define_expand "tablejump"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment