Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: bfd/coff-tic54x.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bfd/coff-tic4x.c ('k') | bfd/coff-tic80.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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 };
OLDNEW
« no previous file with comments | « bfd/coff-tic4x.c ('k') | bfd/coff-tic80.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698