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>
* fold-const.c (force_fit_type): Handle OFFSET_TYPE.

View File

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