diff options
author | Steve Ellcey <Steve.Ellcey@imgtec.com> | 2014-12-18 10:41:50 -0800 |
---|---|---|
committer | Steve Ellcey <Steve.Ellcey@imgtec.com> | 2014-12-18 10:41:50 -0800 |
commit | b3e9a4171187f64c03d1858c2c840113df6b02de (patch) | |
tree | 24ed906374d33eabcbd3cfccc5d5b6ea9b4f5f51 /binutils-2.25/ld/emultempl | |
parent | bbff162609624c737f72b070e2b53aeb5ed1e958 (diff) | |
download | toolchain_binutils-b3e9a4171187f64c03d1858c2c840113df6b02de.zip toolchain_binutils-b3e9a4171187f64c03d1858c2c840113df6b02de.tar.gz toolchain_binutils-b3e9a4171187f64c03d1858c2c840113df6b02de.tar.bz2 |
Add MIPS specific changes to binutils 2.25 (prerelease) for MIPSR6 bug fixes,
MXU support, and a fix to needed by gdbserver.
Diffstat (limited to 'binutils-2.25/ld/emultempl')
-rw-r--r-- | binutils-2.25/ld/emultempl/mipself.em | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/binutils-2.25/ld/emultempl/mipself.em b/binutils-2.25/ld/emultempl/mipself.em index b6e17ce..b3458ae 100644 --- a/binutils-2.25/ld/emultempl/mipself.em +++ b/binutils-2.25/ld/emultempl/mipself.em @@ -34,6 +34,7 @@ static lang_input_statement_type *stub_file; static bfd *stub_bfd; static bfd_boolean insn32; +static bfd_boolean compact_branches; static void mips_after_parse (void) @@ -205,7 +206,10 @@ mips_create_output_section_statements (void) _bfd_mips_elf_insn32 (&link_info, insn32); if (is_mips_elf (link_info.output_bfd)) - _bfd_mips_elf_init_stubs (&link_info, mips_add_stub_section); + { + _bfd_mips_elf_compact_branches (&link_info, compact_branches); + _bfd_mips_elf_init_stubs (&link_info, mips_add_stub_section); + } } /* This is called after we have merged the private data of the input bfds. */ @@ -252,11 +256,15 @@ EOF PARSE_AND_LIST_PROLOGUE=' #define OPTION_INSN32 301 #define OPTION_NO_INSN32 (OPTION_INSN32 + 1) +#define OPTION_COMPACT_BRANCHES (OPTION_NO_INSN32 + 1) +#define OPTION_NO_COMPACT_BRANCHES (OPTION_COMPACT_BRANCHES + 1) ' PARSE_AND_LIST_LONGOPTS=' { "insn32", no_argument, NULL, OPTION_INSN32 }, { "no-insn32", no_argument, NULL, OPTION_NO_INSN32 }, + { "compact-branches", no_argument, NULL, OPTION_COMPACT_BRANCHES }, + { "no-compact-branches", no_argument, NULL, OPTION_NO_COMPACT_BRANCHES }, ' PARSE_AND_LIST_OPTIONS=' @@ -266,6 +274,12 @@ PARSE_AND_LIST_OPTIONS=' fprintf (file, _("\ --no-insn32 Generate all microMIPS instructions\n" )); + fprintf (file, _("\ + --compact-branches Generate compact branches/jumps for MIPS R6\n" + )); + fprintf (file, _("\ + --no-compact-branches Generate delay slot branches/jumps for MIPS R6\n" + )); ' PARSE_AND_LIST_ARGS_CASES=' @@ -276,6 +290,14 @@ PARSE_AND_LIST_ARGS_CASES=' case OPTION_NO_INSN32: insn32 = FALSE; break; + + case OPTION_COMPACT_BRANCHES: + compact_branches = TRUE; + break; + + case OPTION_NO_COMPACT_BRANCHES: + compact_branches = FALSE; + break; ' LDEMUL_AFTER_PARSE=mips_after_parse |