This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[committed] Fix Bug rtl-optimization/17728
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 27 Feb 2005 12:26:51 -0500 (EST)
- Subject: [committed] Fix Bug rtl-optimization/17728
The change change fixes the ICE in extract_insn, at recog.c:2083. The
move_dest_operand predicate prevents the mulsi3, divsi3, udivsi3 and
modsi3 expanders from creating a move instruction with a indexed MEM
as its destination.
Tested on hppa-unknown-linux-gnu (3.4 and 4.1), and hppa64-hp-hpux11.11.
Committed to 3.4, 4.0 and 4.1.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR rtl-optimization/17728
* pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
operand 0 from general_operand to move_dest_operand.
Index: config/pa/pa.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.md,v
retrieving revision 1.138.4.8
diff -u -3 -p -r1.138.4.8 pa.md
--- config/pa/pa.md 11 Feb 2005 22:10:33 -0000 1.138.4.8
+++ config/pa/pa.md 27 Feb 2005 02:39:06 -0000
@@ -5082,7 +5082,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 4))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5208,7 +5208,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5264,7 +5264,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5321,7 +5321,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5373,7 +5373,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{