diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2003-07-23 15:53:31 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2003-07-23 15:53:31 +0000 |
commit | 9d6b7c09886bd1c966abfd9bb13be2a86ba960c2 (patch) | |
tree | e86f17a40ad92981485766abbdfd06edc00519c4 /gcc/config/pa | |
parent | ed6d7413173eb6caaab948e40b53c8cdb31de061 (diff) | |
download | gcc-9d6b7c09886bd1c966abfd9bb13be2a86ba960c2.zip gcc-9d6b7c09886bd1c966abfd9bb13be2a86ba960c2.tar.gz gcc-9d6b7c09886bd1c966abfd9bb13be2a86ba960c2.tar.bz2 |
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
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa.md | 51 |
1 files changed, 18 insertions, 33 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 3536996..0537756 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -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"))] "" "@ |