summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1999-01-24 17:20:07 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1999-01-24 17:20:07 +0000
commit2a370fba36400c8f1519961ad5c233d35319c53c (patch)
tree7c3854f0c10fab04b5bf4b72cc20d5f5aa68e41e /gcc/config
parentf05d5d03fc6029cc78efbb231398eaf4cc246626 (diff)
downloadgcc-2a370fba36400c8f1519961ad5c233d35319c53c.tar.gz
Fix problems found by David Edelsohn I caused
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24851 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.md32
1 files changed, 18 insertions, 14 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index fc8c8c9ccd4..03969a73714 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4265,7 +4265,9 @@
(const_int 0)))
(clobber (match_scratch:SI 4 "=r,r"))]
"includes_lshift_p (operands[2], operands[3])"
- "{rlinm.|rlwinm.} %4,%1,%h2,%m3,%M3"
+ "@
+ {rlinm.|rlwinm.} %4,%1,%h2,%m3,%M3
+ #"
[(set_attr "type" "delayed_compare")])
(define_split
@@ -4296,7 +4298,9 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(and:SI (ashift:SI (match_dup 1) (match_dup 2)) (match_dup 3)))]
"includes_lshift_p (operands[2], operands[3])"
- "{rlinm.|rlwinm.} %0,%1,%h2,%m3,%M3"
+ "@
+ {rlinm.|rlwinm.} %0,%1,%h2,%m3,%M3
+ #"
[(set_attr "type" "delayed_compare")])
(define_split
@@ -8405,7 +8409,9 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (match_dup 1))]
""
- "mr. %0,%1"
+ "@
+ mr. %0,%1
+ #"
[(set_attr "type" "compare")])
(define_split
@@ -8992,13 +8998,18 @@
{
operands[2] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN == 0);
operands[3] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN != 0);
+#if HOST_BITS_PER_WIDE_INT == 32
operands[4] = (INTVAL (operands[1]) & 0x80000000) ? constm1_rtx : const0_rtx;
+#else
+ operands[4] = (HOST_WIDE_INT) INTVAL (operands[1]) >> 32;
+ operands[1] = INTVAL (operands[1]) & 0xffffffff;
+#endif
}")
(define_split
[(set (match_operand:DI 0 "gpc_reg_operand" "")
(match_operand:DI 1 "const_double_operand" ""))]
- "! TARGET_POWERPC64 && reload_completed"
+ "HOST_BITS_PER_WIDE_INT == 32 && ! TARGET_POWERPC64 && reload_completed"
[(set (match_dup 2) (match_dup 4))
(set (match_dup 3) (match_dup 5))]
"
@@ -9170,16 +9181,9 @@
(const_int 0)))
(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (match_dup 1))]
"TARGET_POWERPC64"
- "mr. %0,%1"
- [(set_attr "type" "compare")])
-
-(define_insn ""
- [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
- (compare:CC (match_operand:DI 1 "gpc_reg_operand" "r,r")
- (const_int 0)))
- (set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (match_dup 1))]
- ""
- "mr. %0,%1"
+ "@
+ mr. %0,%1
+ #"
[(set_attr "type" "compare")])
(define_split