------- 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 <[EMAIL PROTECTED]> * 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