binutils-gdb/ld/emultempl
Matthew Fortune 3734320dc0 [MIPS] Add generation of PLT entries with compact jumps for MIPS R6
Add a new option to get the linker to emit PLTs that use compact
branches instead of delay slot branches.

bfd/
	* elfxx-mips.c (LA25_BC): New macro.
	(mips_elf_link_hash_table)<compact_branches>: New field.
	(STUB_JALRC): New macro.
	(mipsr6_o32_exec_plt0_entry_compact): New array.
	(mipsr6_n32_exec_plt0_entry_compact): Likewise.
	(mipsr6_n64_exec_plt0_entry_compact): Likewise.
	(mipsr6_exec_plt_entry_compact): Likewise.
	(mips_elf_create_la25_stub): Use BC instead of J for stubs
	when compact_branches is true.
	(_bfd_mips_elf_finish_dynamic_symbol): Choose the compact
	PLT for MIPSR6 with compact_branches.  Do not reorder the
	compact branches PLT.  Switch the lazy stub for MIPSR6
	with compact_branches to use JALRC.
	(mips_finish_exec_plt): Choose the compact PLT0 for MIPSR6
	when compact_branches is true.
	(_bfd_mips_elf_compact_branches): New function.
	* elfxx-mips.h (_bfd_mips_elf_compact_branches): New prototype.

ld/
	* emultempl/mipself.em (compact_branches): New static variable.
	(mips_create_output_section_statements): Call
	_bfd_mips_elf_compact_branches.
	(PARSE_AND_LIST_PROLOGUE): Add OPTION_COMPACT_BRANCHES and
	OPTION_NO_COMPACT_BRANCHES.
	(PARSE_AND_LIST_LONGOPTS): Add compact-branches,
	no-compact-branches.
	(PARSE_AND_LIST_OPTIONS): Add --compact-branches,
	--no-compact-branches.
	(PARSE_AND_LIST_ARGS_CASES): Handle the above.
	* ld.texinfo: Document --compact-branches, --no-compact-branches.
	* testsuite/ld-mips-elf/pic-and-nonpic-1-r6.dd: New test.
	* testsuite/ld-mips-elf/pic-and-nonpic-1-r6.nd: New test.
	* testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.dd: New test.
	* testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.gd: New test.
	* testsuite/ld-mips-elf/pic-and-nonpic-1a-r6.s: New test source.
	* testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.s: New test source.
	* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
2019-05-21 09:22:28 -07:00
..
aarch64elf.em AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373) 2019-05-21 13:05:22 +01:00
aix.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
alphaelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
arclinux.em [ARC] don't force _init/_fini as DT_INIT/DT_FINI. 2019-02-09 11:07:42 +01:00
armcoff.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
armelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
astring.sed
avrelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
beos.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
bfin.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
cr16elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
crxelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
cskyelf.em cskyelf.em branch stub handling 2019-04-10 13:30:32 +09:30
elf32.em x86: Move x86-specific linker options to elf_linker_x86_params 2019-04-06 07:25:31 -07:00
elf-generic.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
elf-x86.em x86: Move x86-specific linker options to elf_linker_x86_params 2019-04-06 07:25:31 -07:00
epiphanyelf_4x4.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
genelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
generic.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
hppaelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
ia64elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
irix.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
linux.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
m68hc1xelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
m68kelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
metagelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
mipself.em [MIPS] Add generation of PLT entries with compact jumps for MIPS R6 2019-05-21 09:22:28 -07:00
mmix-elfnmmo.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
mmixelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
mmo.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
msp430.em MSP430 Linker: Define __crt0_init_bss/__crt0_movedata symbols when .lower or .either prefixed sections are present. 2019-04-17 15:05:08 +01:00
nds32elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
needrelax.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
netbsd.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
nios2elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
ostring.sed
pe.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
pep.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
ppc32elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
ppc64elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
pruelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
README Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
riscvelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
rxelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
s390.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
scoreelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
solaris2-x86.em x86: Move x86-specific linker options to elf_linker_x86_params 2019-04-06 07:25:31 -07:00
solaris2.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
spu_icache.o_c
spu_icache.S
spu_ovl.o_c
spu_ovl.S Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
spuelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
tic6xdsbt.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
ticoff.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
v850elf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
vanilla.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
vms.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
vxworks.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
xtensaelf.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30
z80.em Update year range in copyright notice of binutils files 2019-01-01 22:06:53 +10:30

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.

The files in this directory are sourced by genscripts.sh, after
setting some variables to substitute in, to produce
C source files that contain jump tables for each emulation.

Copyright (C) 2012-2019 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.