]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386.c (ix86_avoid_lea_for_addr): Handle zero-extended addresses.
authorUros Bizjak <ubizjak@gmail.com>
Sat, 28 Jul 2012 09:16:52 +0000 (11:16 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 28 Jul 2012 09:16:52 +0000 (11:16 +0200)
commit61c7941c2446ba676b3b0912712fe0983a9009a8
treee37d485458e063ee9e4ee6f55b8e3f52e8a8531f
parentc50b82a885aa9c53fccdfec82bde9a110de6ee27
i386.c (ix86_avoid_lea_for_addr): Handle zero-extended addresses.

* config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
zero-extended addresses.  Return false if the address has less
than two components.
(ix86_split_lea_for_addr): Unconditionally convert target and
all address operands to requested mode.
* config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
address.
(zero-extended add splitter): New splitter to conditionally split
non-destructive adds.
(*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.

From-SVN: r189925
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md