diff options
author | Alan Modra <amodra@gmail.com> | 2009-01-21 02:27:13 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2009-01-21 02:27:13 +0000 |
commit | fb266b8bce71ad8f875c81a00978578e5ac3874c (patch) | |
tree | aedee562bf6190cb1d0a2dab35b02f4d3a493bcc /ld | |
parent | f6a96b83ac540c203c92a19e90bfbe61e3a57cc1 (diff) | |
download | fsf-binutils-gdb-fb266b8bce71ad8f875c81a00978578e5ac3874c.zip fsf-binutils-gdb-fb266b8bce71ad8f875c81a00978578e5ac3874c.tar.gz fsf-binutils-gdb-fb266b8bce71ad8f875c81a00978578e5ac3874c.tar.bz2 |
bfd/
* elf32-spu.h (struct spu_elf_params): Add non_ia_text.
* elf32-spu.c (mark_overlay_section): Only include .text.ia.*
sections in soft-icache lines unless non_ia_text. Don't add
rodata if doing so would exceed line size.
ld/
* emultempl/spuelf.em (params): Init new field.
(OPTION_SPU_NON_IA_TEXT): Define.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --non-ia-text.
(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_SPU_NON_IA_TEXT.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/emultempl/spuelf.em | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index a73efc5..b45626a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2009-01-21 Alan Modra <amodra@bigpond.net.au> + + * emultempl/spuelf.em (params): Init new field. + (OPTION_SPU_NON_IA_TEXT): Define. + (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --non-ia-text. + (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_SPU_NON_IA_TEXT. + 2009-01-16 H.J. Lu <hongjiu.lu@intel.com> * lexsup.c (option_values): Add OPTION_TTEXT_SEGMENT. diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em index f72690d..7c98f71 100644 --- a/ld/emultempl/spuelf.em +++ b/ld/emultempl/spuelf.em @@ -37,7 +37,7 @@ static struct spu_elf_params params = &spu_elf_load_ovl_mgr, &spu_elf_open_overlay_script, &spu_elf_relink, - 0, ovly_normal, 0, 0, 0, 0, 0, + 0, ovly_normal, 0, 0, 0, 0, 0, 0, 0, 0x3ffff, 1, 0, 16, 0, 0, 2000 }; @@ -594,7 +594,8 @@ PARSE_AND_LIST_PROLOGUE=' #define OPTION_SPU_LINE_SIZE (OPTION_SPU_SOFT_ICACHE + 1) #define OPTION_SPU_NUM_LINES (OPTION_SPU_LINE_SIZE + 1) #define OPTION_SPU_LRLIVE (OPTION_SPU_NUM_LINES + 1) -#define OPTION_SPU_FIXED_SPACE (OPTION_SPU_LRLIVE + 1) +#define OPTION_SPU_NON_IA_TEXT (OPTION_SPU_LRLIVE + 1) +#define OPTION_SPU_FIXED_SPACE (OPTION_SPU_NON_IA_TEXT + 1) #define OPTION_SPU_RESERVED_SPACE (OPTION_SPU_FIXED_SPACE + 1) #define OPTION_SPU_EXTRA_STACK (OPTION_SPU_RESERVED_SPACE + 1) #define OPTION_SPU_NO_AUTO_OVERLAY (OPTION_SPU_EXTRA_STACK + 1) @@ -606,6 +607,7 @@ PARSE_AND_LIST_LONGOPTS=' { "lrlive-analysis", no_argument, NULL, OPTION_SPU_LRLIVE }, { "num-lines", required_argument, NULL, OPTION_SPU_NUM_LINES }, { "line-size", required_argument, NULL, OPTION_SPU_LINE_SIZE }, + { "non-ia-text", no_argument, NULL, OPTION_SPU_NON_IA_TEXT }, { "no-overlays", no_argument, NULL, OPTION_SPU_NO_OVERLAYS }, { "emit-stub-syms", no_argument, NULL, OPTION_SPU_STUB_SYMS }, { "extra-overlay-stubs", no_argument, NULL, OPTION_SPU_NON_OVERLAY_STUBS }, @@ -647,6 +649,7 @@ PARSE_AND_LIST_OPTIONS=' --soft-icache Generate software icache overlays.\n\ --num-lines Number of soft-icache lines (default 32).\n\ --line-size Size of soft-icache lines (default 1k).\n\ + --non-ia-text Allow non-icache code in icache lines.\n\ --lrlive-analysis Scan function prologue for lr liveness.\n" )); ' @@ -725,6 +728,10 @@ PARSE_AND_LIST_ARGS_CASES=' params.lrlive_analysis = 1; break; + case OPTION_SPU_NON_IA_TEXT: + params.non_ia_text = 1; + break; + case OPTION_SPU_NUM_LINES: { char *end; |