Refactor elf_x86_64_convert_mov_to_lea

* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Refactor.
This commit is contained in:
H.J. Lu 2015-07-01 09:32:47 -07:00
parent bbcbf914a6
commit dfc87947b5
2 changed files with 13 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2015-07-01 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Refactor.
2015-06-30 Nick Clifton <nickc@redhat.com>
PR binutils/18570

View File

@ -2952,16 +2952,21 @@ elf_x86_64_convert_mov_to_lea (bfd *abfd, asection *sec,
enum {
none, local, global
} convert_mov_to_lea;
unsigned int opcode;
if (r_type != R_X86_64_GOTPCREL)
continue;
roff = irel->r_offset;
/* Don't convert R_X86_64_GOTPCREL relocation if it isn't for mov
instruction. */
if (roff < 2
|| bfd_get_8 (abfd, contents + roff - 2) != 0x8b)
if (roff < 2)
continue;
opcode = bfd_get_8 (abfd, contents + roff - 2);
/* PR ld/18591: Don't convert R_X86_64_GOTPCREL relocation if it
isn't for mov instruction. */
if (opcode != 0x8b)
continue;
tsec = NULL;