| OLD | NEW |
| 1 /* BFD back-end for TMS320C54X coff binaries. | 1 /* BFD back-end for TMS320C54X coff binaries. |
| 2 Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2011 | 2 Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2011, 2012 |
| 3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
| 4 Contributed by Timothy Wall (twall@cygnus.com) | 4 Contributed by Timothy Wall (twall@cygnus.com) |
| 5 | 5 |
| 6 This file is part of BFD, the Binary File Descriptor library. | 6 This file is part of BFD, the Binary File Descriptor library. |
| 7 | 7 |
| 8 This program is free software; you can redistribute it and/or modify | 8 This program is free software; you can redistribute it and/or modify |
| 9 it under the terms of the GNU General Public License as published by | 9 it under the terms of the GNU General Public License as published by |
| 10 the Free Software Foundation; either version 3 of the License, or | 10 the Free Software Foundation; either version 3 of the License, or |
| 11 (at your option) any later version. | 11 (at your option) any later version. |
| 12 | 12 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 24 #include "bfd.h" | 24 #include "bfd.h" |
| 25 #include "libbfd.h" | 25 #include "libbfd.h" |
| 26 #include "bfdlink.h" | 26 #include "bfdlink.h" |
| 27 #include "coff/tic54x.h" | 27 #include "coff/tic54x.h" |
| 28 #include "coff/internal.h" | 28 #include "coff/internal.h" |
| 29 #include "libcoff.h" | 29 #include "libcoff.h" |
| 30 | 30 |
| 31 #undef F_LSYMS | 31 #undef F_LSYMS |
| 32 #define F_LSYMS F_LSYMS_TICOFF | 32 #define F_LSYMS F_LSYMS_TICOFF |
| 33 | 33 |
| 34 static void tic54x_reloc_processing | 34 static void |
| 35 PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); | 35 tic54x_reloc_processing (arelent *, struct internal_reloc *, |
| 36 static bfd_reloc_status_type tic54x_relocation | 36 » » » asymbol **, bfd *, asection *); |
| 37 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); | |
| 38 static bfd_boolean tic54x_set_section_contents | |
| 39 PARAMS ((bfd *, sec_ptr, const PTR, file_ptr, bfd_size_type)); | |
| 40 static reloc_howto_type *coff_tic54x_rtype_to_howto | |
| 41 PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_ent
ry *, struct internal_syment *, bfd_vma *)); | |
| 42 static bfd_boolean tic54x_set_arch_mach | |
| 43 PARAMS ((bfd *, enum bfd_architecture, unsigned long)); | |
| 44 static reloc_howto_type * tic54x_coff_reloc_type_lookup | |
| 45 PARAMS ((bfd *, bfd_reloc_code_real_type)); | |
| 46 static void tic54x_lookup_howto | |
| 47 PARAMS ((arelent *, struct internal_reloc *)); | |
| 48 static bfd_boolean ticoff_bfd_is_local_label_name | |
| 49 PARAMS ((bfd *, const char *)); | |
| 50 | 37 |
| 51 /* 32-bit operations | 38 /* 32-bit operations |
| 52 The octet order is screwy. words are LSB first (LS octet, actually), but | 39 The octet order is screwy. words are LSB first (LS octet, actually), but |
| 53 longwords are MSW first. For example, 0x12345678 is encoded 0x5678 in the | 40 longwords are MSW first. For example, 0x12345678 is encoded 0x5678 in the |
| 54 first word and 0x1234 in the second. When looking at the data as stored in | 41 first word and 0x1234 in the second. When looking at the data as stored in |
| 55 the COFF file, you would see the octets ordered as 0x78, 0x56, 0x34, 0x12. | 42 the COFF file, you would see the octets ordered as 0x78, 0x56, 0x34, 0x12. |
| 56 Don't bother with 64-bits, as there aren't any. */ | 43 Don't bother with 64-bits, as there aren't any. */ |
| 57 | 44 |
| 58 static bfd_vma | 45 static bfd_vma |
| 59 tic54x_getl32 (const void *p) | 46 tic54x_getl32 (const void *p) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 90 v |= (unsigned long) addr[1] << 24; | 77 v |= (unsigned long) addr[1] << 24; |
| 91 #define COERCE32(x) \ | 78 #define COERCE32(x) \ |
| 92 ((bfd_signed_vma) (long) (((unsigned long) (x) ^ 0x80000000) - 0x80000000)) | 79 ((bfd_signed_vma) (long) (((unsigned long) (x) ^ 0x80000000) - 0x80000000)) |
| 93 return COERCE32 (v); | 80 return COERCE32 (v); |
| 94 } | 81 } |
| 95 | 82 |
| 96 #define coff_get_section_load_page bfd_ticoff_get_section_load_page | 83 #define coff_get_section_load_page bfd_ticoff_get_section_load_page |
| 97 #define coff_set_section_load_page bfd_ticoff_set_section_load_page | 84 #define coff_set_section_load_page bfd_ticoff_set_section_load_page |
| 98 | 85 |
| 99 void | 86 void |
| 100 bfd_ticoff_set_section_load_page (sect, page) | 87 bfd_ticoff_set_section_load_page (asection *sect, |
| 101 asection *sect; | 88 » » » » int page) |
| 102 int page; | |
| 103 { | 89 { |
| 104 sect->lma = (sect->lma & ADDR_MASK) | PG_TO_FLAG(page); | 90 sect->lma = (sect->lma & ADDR_MASK) | PG_TO_FLAG(page); |
| 105 } | 91 } |
| 106 | 92 |
| 107 int | 93 int |
| 108 bfd_ticoff_get_section_load_page (sect) | 94 bfd_ticoff_get_section_load_page (asection *sect) |
| 109 asection *sect; | |
| 110 { | 95 { |
| 111 int page; | 96 int page; |
| 112 | 97 |
| 113 /* Provide meaningful defaults for predefined sections. */ | 98 /* Provide meaningful defaults for predefined sections. */ |
| 114 if (sect == &bfd_com_section) | 99 if (sect == bfd_com_section_ptr) |
| 115 page = PG_DATA; | 100 page = PG_DATA; |
| 116 | 101 |
| 117 else if (sect == &bfd_und_section | 102 else if (bfd_is_und_section (sect) |
| 118 || sect == &bfd_abs_section | 103 » || bfd_is_abs_section (sect) |
| 119 || sect == &bfd_ind_section) | 104 » || bfd_is_ind_section (sect)) |
| 120 page = PG_PROG; | 105 page = PG_PROG; |
| 121 | 106 |
| 122 else | 107 else |
| 123 page = FLAG_TO_PG (sect->lma); | 108 page = FLAG_TO_PG (sect->lma); |
| 124 | 109 |
| 125 return page; | 110 return page; |
| 126 } | 111 } |
| 127 | 112 |
| 128 /* Set the architecture appropriately. Allow unkown architectures | 113 /* Set the architecture appropriately. Allow unkown architectures |
| 129 (e.g. binary). */ | 114 (e.g. binary). */ |
| 130 | 115 |
| 131 static bfd_boolean | 116 static bfd_boolean |
| 132 tic54x_set_arch_mach (abfd, arch, machine) | 117 tic54x_set_arch_mach (bfd *abfd, |
| 133 bfd *abfd; | 118 » » enum bfd_architecture arch, |
| 134 enum bfd_architecture arch; | 119 » » unsigned long machine) |
| 135 unsigned long machine; | |
| 136 { | 120 { |
| 137 if (arch == bfd_arch_unknown) | 121 if (arch == bfd_arch_unknown) |
| 138 arch = bfd_arch_tic54x; | 122 arch = bfd_arch_tic54x; |
| 139 | 123 |
| 140 else if (arch != bfd_arch_tic54x) | 124 else if (arch != bfd_arch_tic54x) |
| 141 return FALSE; | 125 return FALSE; |
| 142 | 126 |
| 143 return bfd_default_set_arch_mach (abfd, arch, machine); | 127 return bfd_default_set_arch_mach (abfd, arch, machine); |
| 144 } | 128 } |
| 145 | 129 |
| 146 static bfd_reloc_status_type | 130 static bfd_reloc_status_type |
| 147 tic54x_relocation (abfd, reloc_entry, symbol, data, input_section, | 131 tic54x_relocation (bfd *abfd ATTRIBUTE_UNUSED, |
| 148 output_bfd, error_message) | 132 » » arelent *reloc_entry, |
| 149 bfd *abfd ATTRIBUTE_UNUSED; | 133 » » asymbol *symbol ATTRIBUTE_UNUSED, |
| 150 arelent *reloc_entry; | 134 » » void * data ATTRIBUTE_UNUSED, |
| 151 asymbol *symbol ATTRIBUTE_UNUSED; | 135 » » asection *input_section, |
| 152 PTR data ATTRIBUTE_UNUSED; | 136 » » bfd *output_bfd, |
| 153 asection *input_section; | 137 » » char **error_message ATTRIBUTE_UNUSED) |
| 154 bfd *output_bfd; | |
| 155 char **error_message ATTRIBUTE_UNUSED; | |
| 156 { | 138 { |
| 157 if (output_bfd != (bfd *) NULL) | 139 if (output_bfd != (bfd *) NULL) |
| 158 { | 140 { |
| 159 /* This is a partial relocation, and we want to apply the | 141 /* This is a partial relocation, and we want to apply the |
| 160 relocation to the reloc entry rather than the raw data. | 142 relocation to the reloc entry rather than the raw data. |
| 161 Modify the reloc inplace to reflect what we now know. */ | 143 Modify the reloc inplace to reflect what we now know. */ |
| 162 reloc_entry->address += input_section->output_offset; | 144 reloc_entry->address += input_section->output_offset; |
| 163 return bfd_reloc_ok; | 145 return bfd_reloc_ok; |
| 164 } | 146 } |
| 165 return bfd_reloc_continue; | 147 return bfd_reloc_continue; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 HOWTO (R_RELLONG,0,2,32,FALSE,0,complain_overflow_dont, | 209 HOWTO (R_RELLONG,0,2,32,FALSE,0,complain_overflow_dont, |
| 228 tic54x_relocation,"STAB",FALSE,0xFFFFFFFF,0xFFFFFFFF,FALSE), | 210 tic54x_relocation,"STAB",FALSE,0xFFFFFFFF,0xFFFFFFFF,FALSE), |
| 229 }; | 211 }; |
| 230 | 212 |
| 231 #define coff_bfd_reloc_type_lookup tic54x_coff_reloc_type_lookup | 213 #define coff_bfd_reloc_type_lookup tic54x_coff_reloc_type_lookup |
| 232 #define coff_bfd_reloc_name_lookup tic54x_coff_reloc_name_lookup | 214 #define coff_bfd_reloc_name_lookup tic54x_coff_reloc_name_lookup |
| 233 | 215 |
| 234 /* For the case statement use the code values used tc_gen_reloc (defined in | 216 /* For the case statement use the code values used tc_gen_reloc (defined in |
| 235 bfd/reloc.c) to map to the howto table entries. */ | 217 bfd/reloc.c) to map to the howto table entries. */ |
| 236 | 218 |
| 237 reloc_howto_type * | 219 static reloc_howto_type * |
| 238 tic54x_coff_reloc_type_lookup (abfd, code) | 220 tic54x_coff_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, |
| 239 bfd *abfd ATTRIBUTE_UNUSED; | 221 » » » bfd_reloc_code_real_type code) |
| 240 bfd_reloc_code_real_type code; | |
| 241 { | 222 { |
| 242 switch (code) | 223 switch (code) |
| 243 { | 224 { |
| 244 case BFD_RELOC_16: | 225 case BFD_RELOC_16: |
| 245 return &tic54x_howto_table[0]; | 226 return &tic54x_howto_table[0]; |
| 246 case BFD_RELOC_TIC54X_PARTLS7: | 227 case BFD_RELOC_TIC54X_PARTLS7: |
| 247 return &tic54x_howto_table[1]; | 228 return &tic54x_howto_table[1]; |
| 248 case BFD_RELOC_TIC54X_PARTMS9: | 229 case BFD_RELOC_TIC54X_PARTMS9: |
| 249 return &tic54x_howto_table[2]; | 230 return &tic54x_howto_table[2]; |
| 250 case BFD_RELOC_TIC54X_23: | 231 case BFD_RELOC_TIC54X_23: |
| (...skipping 22 matching lines...) Expand all Loading... |
| 273 && strcasecmp (tic54x_howto_table[i].name, r_name) == 0) | 254 && strcasecmp (tic54x_howto_table[i].name, r_name) == 0) |
| 274 return &tic54x_howto_table[i]; | 255 return &tic54x_howto_table[i]; |
| 275 | 256 |
| 276 return NULL; | 257 return NULL; |
| 277 } | 258 } |
| 278 | 259 |
| 279 /* Code to turn a r_type into a howto ptr, uses the above howto table. | 260 /* Code to turn a r_type into a howto ptr, uses the above howto table. |
| 280 Called after some initial checking by the tic54x_rtype_to_howto fn below. */ | 261 Called after some initial checking by the tic54x_rtype_to_howto fn below. */ |
| 281 | 262 |
| 282 static void | 263 static void |
| 283 tic54x_lookup_howto (internal, dst) | 264 tic54x_lookup_howto (arelent *internal, |
| 284 arelent *internal; | 265 » » struct internal_reloc *dst) |
| 285 struct internal_reloc *dst; | |
| 286 { | 266 { |
| 287 unsigned i; | 267 unsigned i; |
| 288 int bank = (dst->r_symndx == -1) ? HOWTO_BANK : 0; | 268 int bank = (dst->r_symndx == -1) ? HOWTO_BANK : 0; |
| 289 | 269 |
| 290 for (i = 0; i < sizeof tic54x_howto_table/sizeof tic54x_howto_table[0]; i++) | 270 for (i = 0; i < sizeof tic54x_howto_table/sizeof tic54x_howto_table[0]; i++) |
| 291 { | 271 { |
| 292 if (tic54x_howto_table[i].type == dst->r_type) | 272 if (tic54x_howto_table[i].type == dst->r_type) |
| 293 { | 273 { |
| 294 internal->howto = tic54x_howto_table + i + bank; | 274 internal->howto = tic54x_howto_table + i + bank; |
| 295 return; | 275 return; |
| 296 } | 276 } |
| 297 } | 277 } |
| 298 | 278 |
| 299 (*_bfd_error_handler) (_("Unrecognized reloc type 0x%x"), | 279 (*_bfd_error_handler) (_("Unrecognized reloc type 0x%x"), |
| 300 (unsigned int) dst->r_type); | 280 (unsigned int) dst->r_type); |
| 301 abort (); | 281 abort (); |
| 302 } | 282 } |
| 303 | 283 |
| 304 #define RELOC_PROCESSING(RELENT,RELOC,SYMS,ABFD,SECT)\ | 284 #define RELOC_PROCESSING(RELENT,RELOC,SYMS,ABFD,SECT)\ |
| 305 tic54x_reloc_processing(RELENT,RELOC,SYMS,ABFD,SECT) | 285 tic54x_reloc_processing(RELENT,RELOC,SYMS,ABFD,SECT) |
| 306 | 286 |
| 307 #define coff_rtype_to_howto coff_tic54x_rtype_to_howto | 287 #define coff_rtype_to_howto coff_tic54x_rtype_to_howto |
| 308 | 288 |
| 309 static reloc_howto_type * | 289 static reloc_howto_type * |
| 310 coff_tic54x_rtype_to_howto (abfd, sec, rel, h, sym, addendp) | 290 coff_tic54x_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, |
| 311 bfd *abfd ATTRIBUTE_UNUSED; | 291 » » » asection *sec, |
| 312 asection *sec; | 292 » » » struct internal_reloc *rel, |
| 313 struct internal_reloc *rel; | 293 » » » struct coff_link_hash_entry *h ATTRIBUTE_UNUSED, |
| 314 struct coff_link_hash_entry *h ATTRIBUTE_UNUSED; | 294 » » » struct internal_syment *sym ATTRIBUTE_UNUSED, |
| 315 struct internal_syment *sym ATTRIBUTE_UNUSED; | 295 » » » bfd_vma *addendp) |
| 316 bfd_vma *addendp; | |
| 317 { | 296 { |
| 318 arelent genrel; | 297 arelent genrel; |
| 319 | 298 |
| 320 if (rel->r_symndx == -1 && addendp != NULL) | 299 if (rel->r_symndx == -1 && addendp != NULL) |
| 321 { | 300 { |
| 322 /* This is a TI "internal relocation", which means that the relocation | 301 /* This is a TI "internal relocation", which means that the relocation |
| 323 amount is the amount by which the current section is being relocated | 302 amount is the amount by which the current section is being relocated |
| 324 in the output section. */ | 303 in the output section. */ |
| 325 *addendp = (sec->output_section->vma + sec->output_offset) - sec->vma; | 304 *addendp = (sec->output_section->vma + sec->output_offset) - sec->vma; |
| 326 } | 305 } |
| 327 | 306 |
| 328 tic54x_lookup_howto (&genrel, rel); | 307 tic54x_lookup_howto (&genrel, rel); |
| 329 | 308 |
| 330 return genrel.howto; | 309 return genrel.howto; |
| 331 } | 310 } |
| 332 | 311 |
| 333 /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local | 312 /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local |
| 334 labels. */ | 313 labels. */ |
| 335 | 314 |
| 336 static bfd_boolean | 315 static bfd_boolean |
| 337 ticoff_bfd_is_local_label_name (abfd, name) | 316 ticoff_bfd_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, |
| 338 bfd *abfd ATTRIBUTE_UNUSED; | 317 » » » » const char *name) |
| 339 const char *name; | |
| 340 { | 318 { |
| 341 if (TICOFF_LOCAL_LABEL_P(name)) | 319 if (TICOFF_LOCAL_LABEL_P(name)) |
| 342 return TRUE; | 320 return TRUE; |
| 343 return FALSE; | 321 return FALSE; |
| 344 } | 322 } |
| 345 | 323 |
| 346 #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name | 324 #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name |
| 347 | 325 |
| 348 /* Clear the r_reserved field in relocs. */ | 326 /* Clear the r_reserved field in relocs. */ |
| 349 #define SWAP_OUT_RELOC_EXTRA(abfd,src,dst) \ | 327 #define SWAP_OUT_RELOC_EXTRA(abfd,src,dst) \ |
| (...skipping 10 matching lines...) Expand all Loading... |
| 360 BADMAG. */ | 338 BADMAG. */ |
| 361 #define BADMAG(x) COFF2_BADMAG(x) | 339 #define BADMAG(x) COFF2_BADMAG(x) |
| 362 | 340 |
| 363 #ifndef bfd_pe_print_pdata | 341 #ifndef bfd_pe_print_pdata |
| 364 #define bfd_pe_print_pdata NULL | 342 #define bfd_pe_print_pdata NULL |
| 365 #endif | 343 #endif |
| 366 | 344 |
| 367 #include "coffcode.h" | 345 #include "coffcode.h" |
| 368 | 346 |
| 369 static bfd_boolean | 347 static bfd_boolean |
| 370 tic54x_set_section_contents (abfd, section, location, offset, bytes_to_do) | 348 tic54x_set_section_contents (bfd *abfd, |
| 371 bfd *abfd; | 349 » » » sec_ptr section, |
| 372 sec_ptr section; | 350 » » » const void * location, |
| 373 const PTR location; | 351 » » » file_ptr offset, |
| 374 file_ptr offset; | 352 » » » bfd_size_type bytes_to_do) |
| 375 bfd_size_type bytes_to_do; | |
| 376 { | 353 { |
| 377 return coff_set_section_contents (abfd, section, location, | 354 return coff_set_section_contents (abfd, section, location, |
| 378 offset, bytes_to_do); | 355 offset, bytes_to_do); |
| 379 } | 356 } |
| 380 | 357 |
| 381 static void | 358 static void |
| 382 tic54x_reloc_processing (relent, reloc, symbols, abfd, section) | 359 tic54x_reloc_processing (arelent *relent, |
| 383 arelent *relent; | 360 » » » struct internal_reloc *reloc, |
| 384 struct internal_reloc *reloc; | 361 » » » asymbol **symbols, |
| 385 asymbol **symbols; | 362 » » » bfd *abfd, |
| 386 bfd *abfd; | 363 » » » asection *section) |
| 387 asection *section; | |
| 388 { | 364 { |
| 389 asymbol *ptr; | 365 asymbol *ptr; |
| 390 | 366 |
| 391 relent->address = reloc->r_vaddr; | 367 relent->address = reloc->r_vaddr; |
| 392 | 368 |
| 393 if (reloc->r_symndx != -1) | 369 if (reloc->r_symndx != -1) |
| 394 { | 370 { |
| 395 if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd)) | 371 if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd)) |
| 396 { | 372 { |
| 397 (*_bfd_error_handler) | 373 (*_bfd_error_handler) |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 BFD_JUMP_TABLE_COPY (coff), | 441 BFD_JUMP_TABLE_COPY (coff), |
| 466 BFD_JUMP_TABLE_CORE (_bfd_nocore), | 442 BFD_JUMP_TABLE_CORE (_bfd_nocore), |
| 467 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), | 443 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
| 468 BFD_JUMP_TABLE_SYMBOLS (coff), | 444 BFD_JUMP_TABLE_SYMBOLS (coff), |
| 469 BFD_JUMP_TABLE_RELOCS (coff), | 445 BFD_JUMP_TABLE_RELOCS (coff), |
| 470 BFD_JUMP_TABLE_WRITE (tic54x), | 446 BFD_JUMP_TABLE_WRITE (tic54x), |
| 471 BFD_JUMP_TABLE_LINK (coff), | 447 BFD_JUMP_TABLE_LINK (coff), |
| 472 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 448 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
| 473 NULL, | 449 NULL, |
| 474 | 450 |
| 475 (PTR) & ticoff0_swap_table | 451 & ticoff0_swap_table |
| 476 }; | 452 }; |
| 477 | 453 |
| 478 /* TI COFF v0, SPARC tools (big-endian headers). */ | 454 /* TI COFF v0, SPARC tools (big-endian headers). */ |
| 479 const bfd_target tic54x_coff0_beh_vec = | 455 const bfd_target tic54x_coff0_beh_vec = |
| 480 { | 456 { |
| 481 "coff0-beh-c54x", /* name */ | 457 "coff0-beh-c54x", /* name */ |
| 482 bfd_target_coff_flavour, | 458 bfd_target_coff_flavour, |
| 483 BFD_ENDIAN_LITTLE, /* data byte order is little */ | 459 BFD_ENDIAN_LITTLE, /* data byte order is little */ |
| 484 BFD_ENDIAN_BIG, /* header byte order is big */ | 460 BFD_ENDIAN_BIG, /* header byte order is big */ |
| 485 | 461 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 511 BFD_JUMP_TABLE_CORE (_bfd_nocore), | 487 BFD_JUMP_TABLE_CORE (_bfd_nocore), |
| 512 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), | 488 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
| 513 BFD_JUMP_TABLE_SYMBOLS (coff), | 489 BFD_JUMP_TABLE_SYMBOLS (coff), |
| 514 BFD_JUMP_TABLE_RELOCS (coff), | 490 BFD_JUMP_TABLE_RELOCS (coff), |
| 515 BFD_JUMP_TABLE_WRITE (tic54x), | 491 BFD_JUMP_TABLE_WRITE (tic54x), |
| 516 BFD_JUMP_TABLE_LINK (coff), | 492 BFD_JUMP_TABLE_LINK (coff), |
| 517 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 493 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
| 518 | 494 |
| 519 & tic54x_coff0_vec, | 495 & tic54x_coff0_vec, |
| 520 | 496 |
| 521 (PTR) & ticoff0_swap_table | 497 & ticoff0_swap_table |
| 522 }; | 498 }; |
| 523 | 499 |
| 524 /* TI COFF v1, DOS tools (little-endian headers). */ | 500 /* TI COFF v1, DOS tools (little-endian headers). */ |
| 525 const bfd_target tic54x_coff1_vec = | 501 const bfd_target tic54x_coff1_vec = |
| 526 { | 502 { |
| 527 "coff1-c54x", /* name */ | 503 "coff1-c54x", /* name */ |
| 528 bfd_target_coff_flavour, | 504 bfd_target_coff_flavour, |
| 529 BFD_ENDIAN_LITTLE, /* data byte order is little */ | 505 BFD_ENDIAN_LITTLE, /* data byte order is little */ |
| 530 BFD_ENDIAN_LITTLE, /* header byte order is little (DOS tools) */ | 506 BFD_ENDIAN_LITTLE, /* header byte order is little (DOS tools) */ |
| 531 | 507 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 557 BFD_JUMP_TABLE_CORE (_bfd_nocore), | 533 BFD_JUMP_TABLE_CORE (_bfd_nocore), |
| 558 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), | 534 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
| 559 BFD_JUMP_TABLE_SYMBOLS (coff), | 535 BFD_JUMP_TABLE_SYMBOLS (coff), |
| 560 BFD_JUMP_TABLE_RELOCS (coff), | 536 BFD_JUMP_TABLE_RELOCS (coff), |
| 561 BFD_JUMP_TABLE_WRITE (tic54x), | 537 BFD_JUMP_TABLE_WRITE (tic54x), |
| 562 BFD_JUMP_TABLE_LINK (coff), | 538 BFD_JUMP_TABLE_LINK (coff), |
| 563 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 539 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
| 564 | 540 |
| 565 & tic54x_coff0_beh_vec, | 541 & tic54x_coff0_beh_vec, |
| 566 | 542 |
| 567 (PTR) & ticoff1_swap_table | 543 & ticoff1_swap_table |
| 568 }; | 544 }; |
| 569 | 545 |
| 570 /* TI COFF v1, SPARC tools (big-endian headers). */ | 546 /* TI COFF v1, SPARC tools (big-endian headers). */ |
| 571 const bfd_target tic54x_coff1_beh_vec = | 547 const bfd_target tic54x_coff1_beh_vec = |
| 572 { | 548 { |
| 573 "coff1-beh-c54x", /* name */ | 549 "coff1-beh-c54x", /* name */ |
| 574 bfd_target_coff_flavour, | 550 bfd_target_coff_flavour, |
| 575 BFD_ENDIAN_LITTLE, /* data byte order is little */ | 551 BFD_ENDIAN_LITTLE, /* data byte order is little */ |
| 576 BFD_ENDIAN_BIG, /* header byte order is big */ | 552 BFD_ENDIAN_BIG, /* header byte order is big */ |
| 577 | 553 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 603 BFD_JUMP_TABLE_CORE (_bfd_nocore), | 579 BFD_JUMP_TABLE_CORE (_bfd_nocore), |
| 604 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), | 580 BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
| 605 BFD_JUMP_TABLE_SYMBOLS (coff), | 581 BFD_JUMP_TABLE_SYMBOLS (coff), |
| 606 BFD_JUMP_TABLE_RELOCS (coff), | 582 BFD_JUMP_TABLE_RELOCS (coff), |
| 607 BFD_JUMP_TABLE_WRITE (tic54x), | 583 BFD_JUMP_TABLE_WRITE (tic54x), |
| 608 BFD_JUMP_TABLE_LINK (coff), | 584 BFD_JUMP_TABLE_LINK (coff), |
| 609 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 585 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
| 610 | 586 |
| 611 & tic54x_coff1_vec, | 587 & tic54x_coff1_vec, |
| 612 | 588 |
| 613 (PTR) & ticoff1_swap_table | 589 & ticoff1_swap_table |
| 614 }; | 590 }; |
| 615 | 591 |
| 616 /* TI COFF v2, TI DOS tools output (little-endian headers). */ | 592 /* TI COFF v2, TI DOS tools output (little-endian headers). */ |
| 617 const bfd_target tic54x_coff2_vec = | 593 const bfd_target tic54x_coff2_vec = |
| 618 { | 594 { |
| 619 "coff2-c54x", /* name */ | 595 "coff2-c54x", /* name */ |
| 620 bfd_target_coff_flavour, | 596 bfd_target_coff_flavour, |
| 621 BFD_ENDIAN_LITTLE, /* data byte order is little */ | 597 BFD_ENDIAN_LITTLE, /* data byte order is little */ |
| 622 BFD_ENDIAN_LITTLE, /* header byte order is little (DOS tools) */ | 598 BFD_ENDIAN_LITTLE, /* header byte order is little (DOS tools) */ |
| 623 | 599 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 BFD_JUMP_TABLE_SYMBOLS (coff), | 673 BFD_JUMP_TABLE_SYMBOLS (coff), |
| 698 BFD_JUMP_TABLE_RELOCS (coff), | 674 BFD_JUMP_TABLE_RELOCS (coff), |
| 699 BFD_JUMP_TABLE_WRITE (tic54x), | 675 BFD_JUMP_TABLE_WRITE (tic54x), |
| 700 BFD_JUMP_TABLE_LINK (coff), | 676 BFD_JUMP_TABLE_LINK (coff), |
| 701 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), | 677 BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), |
| 702 | 678 |
| 703 & tic54x_coff2_vec, | 679 & tic54x_coff2_vec, |
| 704 | 680 |
| 705 COFF_SWAP_TABLE | 681 COFF_SWAP_TABLE |
| 706 }; | 682 }; |
| OLD | NEW |