[GOLD] PowerPC relocations for prefix insns
[deliverable/binutils-gdb.git] / gold / ChangeLog
index e8bfea973efb0f847b9d405f91017af0517588f7..d6e2c0c5f7f1f00143c5bc6e8a94fcc30b7e0e17 100644 (file)
@@ -1,3 +1,48 @@
+2019-07-13  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc): Add powerxx_stubs_ and accessor
+       functions.
+       (Target_powerpc::maybe_skip_tls_get_addr_call): Handle PLT_PCREL34
+       and PLT_PCREL34_NOTOC relocs.
+       (Powerpc_relocate_functions): Add addr34, addr34_hi, addr34_ha,
+       addr28, addr16_higher34, addr16_highera34, addr16_highest34,
+       addr16_highest34a functions.
+       (li_11_0, ori_11_11_0, sldi_11_11_34): Define.
+       (paddi_12_pc, pld_12_pc, pnop): Define.
+       (d34, ha34): New inline functions.
+       (Stub_table::add_plt_call_entry): Handle powerxx_stubs.
+       (Stub_table::add_eh_frame): Likewise.
+       (build_powerxx_offset): New function.
+       (Stub_table::plt_call_size): Handle powerxx_stubs.
+       (Stub_table::branch_stub_size): Likewise.
+       (Stub_table::do_write): Likewise.
+       (Target_powerpc::Scan::get_reference_flags): Handle new relocs.
+       (Target_powerpc::Scan::reloc_needs_plt_for_ifunc: Likewise.
+       (Target_powerpc::Scan::local, global, relocate): Likewise.
+
+2019-07-13  Alan Modra  <amodra@gmail.com>
+
+       * ehframe.cc (Fde::operator==): Delete.
+       (Cie::remove_fde): Delete.
+       (Eh_frame::remove_ehframe_for_plt): Delete fde_data and fde_length
+       parameters.  Remove all post-map plt FDEs.
+       * ehframe.h (Fde:post_map): Make const, add variant to compare plt.
+       (Fde::operator==): Delete.
+       (Cie::remove_fde): Implement here.
+       (Cie::last_fde): New accessor.
+       (Eh_frame::remove_ehframe_for_plt): Update prototype.
+       * layout.cc (Layout::remove_eh_frame_for_plt): Delete fde_data and
+       fde_length parameters.
+       * layout.h (Layout::remove_eh_frame_for_plt): Update prototype.
+       * powerpc.cc (Stub_table::tls_get_addr_opt_bctrl_): Delete.
+       (Stub_table::plt_fde_len_, plt_fde_, init_plt_fde): Delete.
+       (Stub_table::add_plt_call_entry): Don't set tls_get_addr_opt_bctrl_.
+       (eh_advance): New function.
+       (stub_sort): New function.
+       (Stub_table::add_eh_frame): Emit eh_frame for notoc plt calls and
+       branches as well as __tls_get_addr_opt plt call stub.
+       (Stub_table::remove_eh_frame): Update to suit.
+
 2019-07-13  Alan Modra  <amodra@gmail.com>
 
        * powerpc.cc (Target_powerpc::maybe_skip_tls_get_addr_call): Handle
This page took 0.025177 seconds and 4 git commands to generate.