Convert mov to lea for loading local function address
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 31 Aug 2012 04:26:17 +0000 (04:26 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 31 Aug 2012 04:26:17 +0000 (04:26 +0000)
commit80d873266deca488bd8059e32780e8ce3ef6191d
tree3c0be3e693f706776a6a402516a1f013d75b1d2d
parent11cba4accf7f9a82fdb7902f0e36521038eda205
Convert mov to lea for loading local function address

bfd/

* elf32-i386.c (elf_i386_relocate_section): Convert
"mov foo@GOT(%reg), %reg" to "lea foo@GOTOFF(%reg), %reg"
for local symbols.

* elf64-x86-64.c (elf_x86_64_relocate_section): Convert
"mov foo@GOTPCREL(%rip), %reg" to "lea foo(%rip), %reg"
for local symbols.

ld/testsuite/

* ld-i386/i386.exp: Run lea1a, lea1b, lea1c.
* ld-x86-64/x86-64.exp: Run lea1a, lea1b, lea1c, lea1d, lea1e,
lea1f.

* ld-i386/lea1.s: New file.
* ld-i386/lea1a.d: Likewise.
* ld-i386/lea1b.d: Likewise.
* ld-i386/lea1c.d: Likewise.
* ld-x86-64/lea1.s: Likewise.
* ld-x86-64/lea1a.d: Likewise.
* ld-x86-64/lea1b.d: Likewise.
* ld-x86-64/lea1c.d: Likewise.
* ld-x86-64/lea1d.d: Likewise.
* ld-x86-64/lea1e.d: Likewise.
* ld-x86-64/lea1f.d: Likewise.
17 files changed:
bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c
ld/testsuite/ChangeLog
ld/testsuite/ld-i386/i386.exp
ld/testsuite/ld-i386/lea1.s [new file with mode: 0644]
ld/testsuite/ld-i386/lea1a.d [new file with mode: 0644]
ld/testsuite/ld-i386/lea1b.d [new file with mode: 0644]
ld/testsuite/ld-i386/lea1c.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1c.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1d.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1e.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/lea1f.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/x86-64.exp
This page took 0.02758 seconds and 4 git commands to generate.