[Gold,x86_64] Convert mov foo@GOTPCREL(%rip), %reg to lea foo(%rip), %reg
authorIlya Tocar <ilya.tocar@intel.com>
Mon, 6 Apr 2015 09:37:34 +0000 (12:37 +0300)
committerIlya Tocar <ilya.tocar@intel.com>
Mon, 6 Apr 2015 09:37:34 +0000 (12:37 +0300)
commit1fa29f10602cd0ab395e0f83c9d87ab160b0df8a
treeacd7f929971240760aa1a3723d1a64734f2218be
parentcbaa2d709747b9da2955761ec86cbee4340263e3
[Gold,x86_64] Convert mov foo@GOTPCREL(%rip), %reg to lea foo(%rip), %reg

2015-04-06  Ilya Tocar  <ilya.tocar@intel.com>

PR gold/17641
* x86_64.cc (Target_x86_64::can_convert_mov_to_lea): New.
(Target_x86_64::Scan::local): Don't create GOT entry, when we
can convert mov to lea.
(Target_x86_64::Scan::global): Ditto.
(Target_x86_64::Relocate::relocate): Convert mov foo@GOTPCREL(%rip),
%reg to lea foo(%rip), %reg if possible.
* testsuite/Makefile.am (x86_64_mov_to_lea): New test.
* testsuite/x86_64_mov_to_lea1.s: New.
* testsuite/x86_64_mov_to_lea2.s: Ditto.
* testsuite/x86_64_mov_to_lea3.s: Ditto.
* testsuite/x86_64_mov_to_lea4.s: Ditto.
* testsuite/x86_64_mov_to_lea.sh: Ditto.
---
gold/ChangeLog
gold/testsuite/Makefile.am
gold/testsuite/x86_64_mov_to_lea.sh [new file with mode: 0755]
gold/testsuite/x86_64_mov_to_lea1.s [new file with mode: 0644]
gold/testsuite/x86_64_mov_to_lea2.s [new file with mode: 0644]
gold/testsuite/x86_64_mov_to_lea3.s [new file with mode: 0644]
gold/testsuite/x86_64_mov_to_lea4.s [new file with mode: 0644]
gold/x86_64.cc