diff options
| author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-31 06:04:07 +0000 |
|---|---|---|
| committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-31 06:04:07 +0000 |
| commit | ef0fa62495ec60b517f8baaeeba85ca73347f5e8 (patch) | |
| tree | 4090cccce5fd6a27421275731e160d27d4ff7136 | |
| parent | 76d91619a1154e2d5274387b187f646f4061b1c4 (diff) | |
| download | ppe42-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/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/pa/pa.md | 38 |
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 "" |

