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 |