diff options
author | Sriraman Tallam <tmsriram@google.com> | 2016-06-28 15:42:33 -0700 |
---|---|---|
committer | Sriraman Tallam <tmsriram@google.com> | 2016-06-28 15:42:33 -0700 |
commit | 3a4f096e5ff41e2a3b832cf6c815ad1f28437c63 (patch) | |
tree | 4b687f6684621526904028771534d04e5da2f0bf /gold/ChangeLog | |
parent | 8032ac03390ca5bc33f8efe29447d0a4bc492950 (diff) | |
download | gdb-3a4f096e5ff41e2a3b832cf6c815ad1f28437c63.zip gdb-3a4f096e5ff41e2a3b832cf6c815ad1f28437c63.tar.gz gdb-3a4f096e5ff41e2a3b832cf6c815ad1f28437c63.tar.bz2 |
Convert indirect calls to direct when possible.
Please see patch discussion:
https://www.sourceware.org/ml/binutils/2016-05/msg00322.html
2016-06-28 Sriraman Tallam <tmsriram@google.com>
* x86_64.cc (Lazy_view): New class.
(can_convert_mov_to_lea): Templatize function. Make the function
check for appropriate relocation types and use the view parameter
to get section contents.
(can_convert_callq_to_direct): New function.
(Target_x86_64<size>::Scan::global): Refactor.
(Target_x86_64<size>::Relocate::relocate): Refactor. Change any indirect
call via GOT that can be converted.
* testsuite/Makefile.am (x86_64_indirect_call_to_direct.sh): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/x86_64_indirect_call_to_direct1.s: New file.
* testsuite/x86_64_indirect_jump_to_direct1.s: New file.
Diffstat (limited to 'gold/ChangeLog')
-rw-r--r-- | gold/ChangeLog | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index d6bae2b..8b293cd 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,18 @@ +2016-06-28 Sriraman Tallam <tmsriram@google.com> + + * x86_64.cc (Lazy_view): New class. + (can_convert_mov_to_lea): Templatize function. Make the function + check for appropriate relocation types and use the view parameter + to get section contents. + (can_convert_callq_to_direct): New function. + (Target_x86_64<size>::Scan::global): Refactor. + (Target_x86_64<size>::Relocate::relocate): Refactor. Change any indirect + call via GOT that can be converted. + * testsuite/Makefile.am (x86_64_indirect_call_to_direct.sh): New test. + * testsuite/Makefile.in: Regenerate. + * testsuite/x86_64_indirect_call_to_direct1.s: New file. + * testsuite/x86_64_indirect_jump_to_direct1.s: New file. + 2016-06-28 Igor Kudrin <ikudrin@accesssoftek.com> * aarch64.cc (Target_aarch64::Scan::local): Move the call to got_section |