aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gnu.org>1994-02-12 01:06:14 +0000
committerTorbjorn Granlund <tege@gnu.org>1994-02-12 01:06:14 +0000
commit324e52cc5b57fdc9a0e529ae97cba33109a08791 (patch)
tree70962808566cfd28e67afd70baa37f7f164b595d
parent5c5e36c5446aaa7a3ead6385a100ad76bf2a42a8 (diff)
downloadgcc-324e52cc5b57fdc9a0e529ae97cba33109a08791.zip
gcc-324e52cc5b57fdc9a0e529ae97cba33109a08791.tar.gz
gcc-324e52cc5b57fdc9a0e529ae97cba33109a08791.tar.bz2
(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
-rw-r--r--gcc/config/rs6000/rs6000.md16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 7c5388f..b481463 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -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"