This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/53961] internal compiler error: in memory_address_length, at config/i386/i386.c:23341


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53961

--- Comment #9 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-14 21:48:32 UTC ---
Can you test following patch that prevents non-register AND address operands:

--cut here--
Index: i386.c
===================================================================
--- i386.c      (revision 189483)
+++ i386.c      (working copy)
@@ -11591,7 +11591,8 @@ ix86_decompose_address (rtx addr, struct ix86_addr
          if (GET_CODE (addr) == SUBREG
              && GET_MODE (SUBREG_REG (addr)) == SImode)
            addr = SUBREG_REG (addr);
-         else if (GET_MODE (addr) == DImode)
+         else if (REG_P (addr)
+                  && GET_MODE (addr) == DImode)
            addr = gen_rtx_SUBREG (SImode, addr, 0);
          else if (GET_MODE (addr) != VOIDmode)
            return 0;
--cut here--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]