diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-04-20 22:03:00 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2010-04-20 22:03:00 +0000 |
commit | 418205099be3d614ad92c8c78486b1a60b498916 (patch) | |
tree | 59ac53127fc8941692ce65e25b6667f9af220bf9 /gas/config/tc-tic6x.h | |
parent | 31ef98ae61505d87f8d3098c5fc1dcb19035a6a1 (diff) | |
download | gdb-418205099be3d614ad92c8c78486b1a60b498916.zip gdb-418205099be3d614ad92c8c78486b1a60b498916.tar.gz gdb-418205099be3d614ad92c8c78486b1a60b498916.tar.bz2 |
bfd:
* elf32-tic6x.h: New.
* elf-bfd.h (enum elf_target_id): Define TIC6X_ELF_DATA.
* elf32-tic6x.c (struct elf32_tic6x_obj_tdata, elf32_tic6x_tdata,
elf32_tic6x_howto_table_rel, elf32_tic6x_info_to_howto_rel,
elf32_tic6x_set_use_rela_p, elf32_tic6x_mkobject,
elf32_tic6x_new_section_hook, elf32_tic6x_rel_relocation_p,
bfd_elf32_mkobject, bfd_elf32_new_section_hook): New.
(elf32_tic6x_reloc_type_lookup, elf32_tic6x_reloc_name_lookup,
elf32_tic6x_relocate_section): Handle REL relocations.
(elf_info_to_howto_rel): Define to elf32_tic6x_info_to_howto_rel.
gas:
* config/tc-tic6x.c (OPTION_MGENERATE_REL): New.
(md_longopts): Add -mgenerate-rel.
(tic6x_generate_rela): New.
(md_parse_option): Handle -mgenerate-rel.
(md_show_usage): Add comment that -mgenerate-rel is undocumented.
(tic6x_init_after_args): New.
(md_apply_fix): Correct shift calculations for SB-relative
relocations.
(md_pcrel_from): Change to tic6x_pcrel_from_section. Do not
adjust addresses for relocations referencing symbols in other
sections.
(tc_gen_reloc): Adjust addend calculations for REL relocations.
* config/tc-tic6x.h (MD_PCREL_FROM_SECTION,
tic6x_pcrel_from_section, tc_init_after_args,
tic6x_init_after_args): New.
ld/testsuite:
* ld-tic6x/data-reloc-global-rel.d,
ld-tic6x/data-reloc-global-rel.s,
ld-tic6x/data-reloc-local-r-rel.d,
ld-tic6x/data-reloc-local-rel.d, ld-tic6x/mvk-reloc-global-rel.d,
ld-tic6x/mvk-reloc-global-rel.s, ld-tic6x/mvk-reloc-local-1-rel.s,
ld-tic6x/mvk-reloc-local-2-rel.s,
ld-tic6x/mvk-reloc-local-r-rel.d, ld-tic6x/mvk-reloc-local-rel.d,
ld-tic6x/pcrel-reloc-global-rel.d,
ld-tic6x/pcrel-reloc-local-r-rel.d,
ld-tic6x/pcrel-reloc-local-rel.d, ld-tic6x/sbr-reloc-global-rel.d,
ld-tic6x/sbr-reloc-global-rel.s, ld-tic6x/sbr-reloc-local-1-rel.s,
ld-tic6x/sbr-reloc-local-2-rel.s,
ld-tic6x/sbr-reloc-local-r-rel.d, ld-tic6x/sbr-reloc-local-rel.d:
New.
Diffstat (limited to 'gas/config/tc-tic6x.h')
-rw-r--r-- | gas/config/tc-tic6x.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gas/config/tc-tic6x.h b/gas/config/tc-tic6x.h index 05c3db8..087b9e9 100644 --- a/gas/config/tc-tic6x.h +++ b/gas/config/tc-tic6x.h @@ -96,6 +96,9 @@ extern void tic6x_cons_align (int n); extern int tic6x_parse_name (const char *name, expressionS *exprP, enum expr_mode mode, char *nextchar); +#define MD_PCREL_FROM_SECTION(FIX, SEC) tic6x_pcrel_from_section (FIX, SEC) +extern long tic6x_pcrel_from_section (struct fix *fixp, segT sec); + #define md_start_line_hook() tic6x_start_line_hook () extern void tic6x_start_line_hook (void); @@ -107,5 +110,8 @@ extern void tic6x_cons_fix_new (fragS *frag, int where, int size, #define tc_frob_label(sym) tic6x_frob_label (sym) extern void tic6x_frob_label (symbolS *sym); +#define tc_init_after_args() tic6x_init_after_args () +extern void tic6x_init_after_args (void); + #define tc_unrecognized_line(c) tic6x_unrecognized_line (c) extern int tic6x_unrecognized_line (int c); |