Commit ebcaaa21 by Roger Sayle Committed by Roger Sayle

re PR middle-end/19697 (gcc.c-torture/execute/ieee/mzero6.c:24: error: unrecognizable insn)


	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.

From-SVN: r94468
parent 6cc37e7e
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> 2005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
PR target/19704 PR target/19704
......
...@@ -5441,25 +5441,14 @@ ...@@ -5441,25 +5441,14 @@
(define_expand "anddi3" (define_expand "anddi3"
[(set (match_operand:DI 0 "register_operand" "") [(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" "")))] (match_operand:DI 2 "and_operand" "")))]
"" ""
" "
{ {
if (TARGET_64BIT) /* Both operands must be register operands. */
{ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
/* One operand must be a register operand. */ FAIL;
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;
}
}") }")
(define_insn "" (define_insn ""
...@@ -5520,25 +5509,14 @@ ...@@ -5520,25 +5509,14 @@
(define_expand "iordi3" (define_expand "iordi3"
[(set (match_operand:DI 0 "register_operand" "") [(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" "")))] (match_operand:DI 2 "ior_operand" "")))]
"" ""
" "
{ {
if (TARGET_64BIT) /* Both operands must be register operands. */
{ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
/* One operand must be a register operand. */ FAIL;
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;
}
}") }")
(define_insn "" (define_insn ""
......
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