This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/31344] [4.3 Regression] bootstrap broken on i[345]86-linux
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 May 2007 07:51:15 -0000
- Subject: [Bug bootstrap/31344] [4.3 Regression] bootstrap broken on i[345]86-linux
- References: <bug-31344-10259@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #20 from ubizjak at gmail dot com 2007-05-07 08:51 -------
Following one-liner fixes the failure. Note that this is for i386 only, as we
also need to skip other autoinc/autodec references.
This is now a generic RTL problem.
2007-05-07 Uros Bizjak <ubizjak@gmail.com>
* explow.c (memory_address): Do not force autoincremented or
autodecremented address references into pseudo register.
Index: explow.c
===================================================================
--- explow.c (revision 124185)
+++ explow.c (working copy)
@@ -445,6 +445,10 @@
transformations can make better code. */
LEGITIMIZE_ADDRESS (x, oldx, mode, win);
+ /* Skip autoincremented/autodecremented references. */
+ if (GET_CODE (x) == PRE_DEC)
+ goto done;
+
/* PLUS and MULT can appear in special ways
as the result of attempts to make an address usable for indexing.
Usually they are dealt with by calling force_operand, below.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31344