summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-31 06:04:07 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-31 06:04:07 +0000
commitef0fa62495ec60b517f8baaeeba85ca73347f5e8 (patch)
tree4090cccce5fd6a27421275731e160d27d4ff7136
parent76d91619a1154e2d5274387b187f646f4061b1c4 (diff)
downloadppe42-gcc-ef0fa62495ec60b517f8baaeeba85ca73347f5e8.tar.gz
ppe42-gcc-ef0fa62495ec60b517f8baaeeba85ca73347f5e8.zip
PR middle-end/19697
* config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer constant as the second operand and a register as the third. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94468 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.md38
2 files changed, 14 insertions, 30 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e66f1f8a768..79a2feb986e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-30 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19697
+ * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
+ constant as the second operand and a register as the third.
+
2005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
PR target/19704
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index cb88288db05..9a434a6095f 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5441,25 +5441,14 @@
(define_expand "anddi3"
[(set (match_operand:DI 0 "register_operand" "")
- (and:DI (match_operand:DI 1 "and_operand" "")
+ (and:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "and_operand" "")))]
""
"
{
- if (TARGET_64BIT)
- {
- /* One operand must be a register operand. */
- if (!register_operand (operands[1], DImode)
- && !register_operand (operands[2], DImode))
- FAIL;
- }
- else
- {
- /* Both operands must be register operands. */
- if (!register_operand (operands[1], DImode)
- || !register_operand (operands[2], DImode))
- FAIL;
- }
+ /* Both operands must be register operands. */
+ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
+ FAIL;
}")
(define_insn ""
@@ -5520,25 +5509,14 @@
(define_expand "iordi3"
[(set (match_operand:DI 0 "register_operand" "")
- (ior:DI (match_operand:DI 1 "ior_operand" "")
+ (ior:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "ior_operand" "")))]
""
"
{
- if (TARGET_64BIT)
- {
- /* One operand must be a register operand. */
- if (!register_operand (operands[1], DImode)
- && !register_operand (operands[2], DImode))
- FAIL;
- }
- else
- {
- /* Both operands must be register operands. */
- if (!register_operand (operands[1], DImode)
- || !register_operand (operands[2], DImode))
- FAIL;
- }
+ /* Both operands must be register operands. */
+ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
+ FAIL;
}")
(define_insn ""
OpenPOWER on IntegriCloud