aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2014-09-09 20:49:08 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2014-09-09 20:49:08 +0200
commit4abf82644ee3d501ab3b2c0e18f28ba888a6f2c3 (patch)
tree6b3a9744138f834c4335f068d4c37f5dfc83f924
parentfd18c76ac8c85976bd7fe413aca2c26296ca6d54 (diff)
downloadgcc-4abf82644ee3d501ab3b2c0e18f28ba888a6f2c3.zip
gcc-4abf82644ee3d501ab3b2c0e18f28ba888a6f2c3.tar.gz
gcc-4abf82644ee3d501ab3b2c0e18f28ba888a6f2c3.tar.bz2
re PR target/63195 (stage3 build/gengtype miscompiled)
2014-09-09 Segher Boessenkool <segher@kernel.crashing.org> PR target/63195 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register operands. Split off the constant operand alternative to ... (*bool<mode>3_imm): New. From-SVN: r215091
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.md19
2 files changed, 20 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c1b755..a967334 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/63195
+ * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
+ operands. Split off the constant operand alternative to ...
+ (*bool<mode>3_imm): New.
+
2014-09-09 David Malcolm <dmalcolm@redhat.com>
* rtl.h (single_set_2): Strengthen first param from const_rtx to
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 2df8e41..b5aeaed 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -2996,14 +2996,21 @@
})
(define_insn "*bool<mode>3"
- [(set (match_operand:GPR 0 "gpc_reg_operand" "=r,r")
+ [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
(match_operator:GPR 3 "boolean_or_operator"
- [(match_operand:GPR 1 "gpc_reg_operand" "%r,r")
- (match_operand:GPR 2 "logical_operand" "r,n")]))]
+ [(match_operand:GPR 1 "gpc_reg_operand" "r")
+ (match_operand:GPR 2 "gpc_reg_operand" "r")]))]
""
- "@
- %q3 %0,%1,%2
- %q3i%e2 %0,%1,%u2"
+ "%q3 %0,%1,%2"
+ [(set_attr "type" "logical")])
+
+(define_insn "*bool<mode>3_imm"
+ [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
+ (match_operator:GPR 3 "boolean_or_operator"
+ [(match_operand:GPR 1 "gpc_reg_operand" "%r")
+ (match_operand:GPR 2 "logical_const_operand" "n")]))]
+ ""
+ "%q3i%e2 %0,%1,%u2"
[(set_attr "type" "logical")])
(define_insn_and_split "*bool<mode>3_dot"