http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53961
--- Comment #21 from uros at gcc dot gnu.org 2012-08-02 16:24:35 UTC --- Author: uros Date: Thu Aug 2 16:24:25 2012 New Revision: 190089 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190089 Log: Backport from mainline 2012-07-24 Uros Bizjak <ubiz...@gmail.com> PR target/53961 * config/i386/i386.c (ix86_legitimate_address_p): Move check for negative constant address for TARGET_X32 ... (ix86_decompose_address): ... here. Reject constant addresses that don't satisfy x86_64_immediate_operand predicate. 2012-07-23 Uros Bizjak <ubiz...@gmail.com> PR target/53961 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses. * config/i386/i386.c (ix86_print_operand_address): Ditto. (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...))) addresses. Prevent zero extensions of CONST_INT operands. 2012-07-22 Uros Bizjak <ubiz...@gmail.com> PR target/53961 * config/i386/i386.md (*lea): New insn pattern. (*lea_1): Remove. (*lea<mode>_2): Ditto. (*lea_{3,4,5,6}_zext): Ditto. * config/i386/predicates.md (lea_address_operand): Do not reject zero-extended address operands. * config/i386/constraints.md (j): Remove address constraint. * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg of an address. (ix86_print_operand_address): Handle SImode subreg of an address. (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config/i386/constraints.md branches/gcc-4_7-branch/gcc/config/i386/i386.c branches/gcc-4_7-branch/gcc/config/i386/i386.md branches/gcc-4_7-branch/gcc/config/i386/predicates.md