PR target/11607 and PR target/11516

PR target/11607 and PR target/11516
	* pa.md (extzv, extv, insv): Revert latter half of last patch.

From-SVN: r69707
This commit is contained in:
John David Anglin 2003-07-23 15:53:31 +00:00 committed by John David Anglin
parent ed6d741317
commit 9d6b7c0988
2 changed files with 23 additions and 33 deletions

View File

@ -1,3 +1,8 @@
2003-07-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/11607 and PR target/11516
* pa.md (extzv, extv, insv): Revert latter half of last patch.
2003-07-22 Mark Mitchell <mark@codesourcery.com> 2003-07-22 Mark Mitchell <mark@codesourcery.com>
* fold-const.c (force_fit_type): Handle OFFSET_TYPE. * fold-const.c (force_fit_type): Handle OFFSET_TYPE.

View File

@ -7158,17 +7158,12 @@
FAIL; FAIL;
if (TARGET_64BIT) if (TARGET_64BIT)
{ emit_insn (gen_extzv_64 (operands[0], operands[1],
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 operands[2], operands[3]));
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63)
FAIL;
emit_insn (gen_extzv_64 (operands[0], operands[1],
operands[2], operands[3]));
}
else else
{ {
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 if (! uint5_operand (operands[2], SImode)
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) || ! uint5_operand (operands[3], SImode))
FAIL; FAIL;
emit_insn (gen_extzv_32 (operands[0], operands[1], emit_insn (gen_extzv_32 (operands[0], operands[1],
operands[2], operands[3])); operands[2], operands[3]));
@ -7179,8 +7174,8 @@
(define_insn "extzv_32" (define_insn "extzv_32"
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(zero_extract:SI (match_operand:SI 1 "register_operand" "r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "uint32_operand" "") (match_operand:SI 2 "uint5_operand" "")
(match_operand:SI 3 "uint32_operand" "")))] (match_operand:SI 3 "uint5_operand" "")))]
"" ""
"{extru|extrw,u} %1,%3+%2-1,%2,%0" "{extru|extrw,u} %1,%3+%2-1,%2,%0"
[(set_attr "type" "shift") [(set_attr "type" "shift")
@ -7229,17 +7224,12 @@
FAIL; FAIL;
if (TARGET_64BIT) if (TARGET_64BIT)
{ emit_insn (gen_extv_64 (operands[0], operands[1],
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 operands[2], operands[3]));
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63)
FAIL;
emit_insn (gen_extv_64 (operands[0], operands[1],
operands[2], operands[3]));
}
else else
{ {
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 if (! uint5_operand (operands[2], SImode)
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) || ! uint5_operand (operands[3], SImode))
FAIL; FAIL;
emit_insn (gen_extv_32 (operands[0], operands[1], emit_insn (gen_extv_32 (operands[0], operands[1],
operands[2], operands[3])); operands[2], operands[3]));
@ -7250,8 +7240,8 @@
(define_insn "extv_32" (define_insn "extv_32"
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(sign_extract:SI (match_operand:SI 1 "register_operand" "r") (sign_extract:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "uint32_operand" "") (match_operand:SI 2 "uint5_operand" "")
(match_operand:SI 3 "uint32_operand" "")))] (match_operand:SI 3 "uint5_operand" "")))]
"" ""
"{extrs|extrw,s} %1,%3+%2-1,%2,%0" "{extrs|extrw,s} %1,%3+%2-1,%2,%0"
[(set_attr "type" "shift") [(set_attr "type" "shift")
@ -7297,17 +7287,12 @@
" "
{ {
if (TARGET_64BIT) if (TARGET_64BIT)
{ emit_insn (gen_insv_64 (operands[0], operands[1],
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 operands[2], operands[3]));
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63)
FAIL;
emit_insn (gen_insv_64 (operands[0], operands[1],
operands[2], operands[3]));
}
else else
{ {
if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 if (! uint5_operand (operands[2], SImode)
|| (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) || ! uint5_operand (operands[3], SImode))
FAIL; FAIL;
emit_insn (gen_insv_32 (operands[0], operands[1], emit_insn (gen_insv_32 (operands[0], operands[1],
operands[2], operands[3])); operands[2], operands[3]));
@ -7317,8 +7302,8 @@
(define_insn "insv_32" (define_insn "insv_32"
[(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r,r") [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r,r")
(match_operand:SI 1 "uint32_operand" "") (match_operand:SI 1 "uint5_operand" "")
(match_operand:SI 2 "uint32_operand" "")) (match_operand:SI 2 "uint5_operand" ""))
(match_operand:SI 3 "arith5_operand" "r,L"))] (match_operand:SI 3 "arith5_operand" "r,L"))]
"" ""
"@ "@