binutils-gdb/gold/ChangeLog
H.J. Lu 6d520e36de gold: x86-64: Fix TLSDESC -> LE relaxation
X86-64 TLSDESC sequences can be:

4c 8d 0d 00 00 00 00	leaq	foo@TLSDESC(%rip), %r9
4c 89 c8		movq	%r9, %rax
ff 10			call	*foo@TLSCALL(%rax)

TLSDESC -> LE relaxation can turn them into:

49 c7 c1 fc ff ff ff 	mov    $0xfffffffffffffffc,%r9
4c 89 c8             	mov    %r9,%rax
66 90                	xchg   %ax,%ax

We need to check and update the REX byte in this case.

	PR gold/25473
	* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
	Properly check r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
	(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): Properly
	relax r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
	* testsuite/Makefile.am (check_SCRIPTS): Add x86_64_gd_to_le.sh.
	(check_DATA): Add x86_64_gd_to_le.stdout.
	(MOSTLYCLEANFILES): Add x86_64_gd_to_le.
	(x86_64_gd_to_le.o): New target.
	(x86_64_gd_to_le): Likewise.
	(x86_64_gd_to_le.stdout): Likewise.
	* testsuite/Makefile.in: Regenerated.
	* testsuite/x86_64_gd_to_le.s: New file.
	* testsuite/x86_64_gd_to_le.sh: Likewise.
2020-05-01 10:08:48 -07:00

80 lines
2.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR gold/25473
* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
Properly check r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): Properly
relax r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
* testsuite/Makefile.am (check_SCRIPTS): Add x86_64_gd_to_le.sh.
(check_DATA): Add x86_64_gd_to_le.stdout.
(MOSTLYCLEANFILES): Add x86_64_gd_to_le.
(x86_64_gd_to_le.o): New target.
(x86_64_gd_to_le): Likewise.
(x86_64_gd_to_le.stdout): Likewise.
* testsuite/Makefile.in: Regenerated.
* testsuite/x86_64_gd_to_le.s: New file.
* testsuite/x86_64_gd_to_le.sh: Likewise.
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/odr_violation2.cc (Ordering::operator()): Make
expression even more complex.
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ver_test_pr16504.sh: Updated.
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR gold/25872
* x86_64.cc (Output_data_plt_x86_64_bnd::do_write): Increment
plt_offset after setting the reserved TLSDESC PLT entry.
(Output_data_plt_x86_64_ibt<size>::do_write): Likewise.
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
PR gold/25872
* x86_64.cc (Output_data_plt_x86_64_bnd::do_address_for_local):
Handle local IFUNC symbol.
(Output_data_plt_x86_64_ibt::do_address_for_local): Likewise.
2020-03-19 Fangrui Song <maskray@google.com>
* options.h (General_options): Add --no-rosegment option.
2020-02-24 Nick Clifton <nickc@redhat.com>
* po/fr.po: Update French translation.
2020-01-20 Nick Clifton <nickc@redhat.com>
* po/uk.po: Updated Ukranian translation.
2020-01-18 Nick Clifton <nickc@redhat.com>
* configure: Regenerate.
* po/gold.pot: Regenerate.
2020-01-18 Nick Clifton <nickc@redhat.com>
Binutils 2.34 branch created.
2020-01-01 Alan Modra <amodra@gmail.com>
Update year range in copyright notice of all files.
For older changes see ChangeLog-2019
Copyright (C) 2020 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End: