From 9eda026ca02dca915d8bf30ae010985db3bc42ce Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 22 Oct 2012 21:39:14 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 4 ++-- gcc/config/i386/i386.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7e9788ea6c..3794f50c64b 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 8e78fbabc0d..ae48d1a91d5 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++;