From: Uros Bizjak Date: Mon, 22 Oct 2012 19:39:14 +0000 (+0200) Subject: i386.c (memory_address_length): Added missing part from my previous commit. X-Git-Tag: misc/gccgo-go1_1_2~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9eda026ca02dca915d8bf30ae010985db3bc42ce;p=thirdparty%2Fgcc.git i386.c (memory_address_length): Added missing part from my previous commit. * config/i386/i386.c (memory_address_length): Added missing part from my previous commit. From-SVN: r192694 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7e9788ea6ca..3794f50c64b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -18,8 +18,8 @@ * config/i386/i386.c (memory_address_length): Assert that non-null base or index RTXes are registers. Do not check for REG RTXes. - Determine addr32 prefix from original base and index RTXes. - Simplify code. + Determine addr32 prefix using SImode_address_operand or + from original base and index RTXes. Simplify code. 2012-10-22 Richard Biener diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8e78fbabc0d8..ae48d1a91d5e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -23780,7 +23780,8 @@ memory_address_length (rtx addr, bool lea) /* If this is not LEA instruction, add the length of addr32 prefix. */ if (TARGET_64BIT && !lea - && ((parts.base && GET_MODE (parts.base) == SImode) + && (SImode_address_operand (addr, VOIDmode) + || (parts.base && GET_MODE (parts.base) == SImode) || (parts.index && GET_MODE (parts.index) == SImode))) len++;