Changeset 609 for branches/GNU/src/binutils/bfd/coff-tic80.c
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/coff-tic80.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP). 2 Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.2 Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3 3 4 4 Written by Fred Fish (fnf@cygnus.com) … … 36 36 #define COFF_ALIGN_IN_SFLAGS 1 37 37 38 #define GET_SCNHDR_FLAGS bfd_h_get_1639 #define PUT_SCNHDR_FLAGS bfd_h_put_1638 #define GET_SCNHDR_FLAGS H_GET_16 39 #define PUT_SCNHDR_FLAGS H_PUT_16 40 40 41 41 static void rtype2howto … … 49 49 static bfd_reloc_status_type local16_reloc 50 50 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); 51 static b oolean coff_tic80_relocate_section51 static bfd_boolean coff_tic80_relocate_section 52 52 PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 53 53 struct internal_reloc *, struct internal_syment *, asection **)); 54 static reloc_howto_type * coff_tic80_rtype_to_howto 55 PARAMS ((bfd *, asection *, struct internal_reloc *, 56 struct coff_link_hash_entry *, struct internal_syment *, 57 bfd_vma *)); 54 58 55 59 static reloc_howto_type tic80_howto_table[] = … … 60 64 2, /* size (0 = byte, 1 = short, 2 = long) */ 61 65 32, /* bitsize */ 62 false, /* pc_relative */66 FALSE, /* pc_relative */ 63 67 0, /* bitpos */ 64 68 complain_overflow_bitfield, /* complain_on_overflow */ 65 69 NULL, /* special_function */ 66 70 "RELLONG", /* name */ 67 true, /* partial_inplace */71 TRUE, /* partial_inplace */ 68 72 0xffffffff, /* src_mask */ 69 73 0xffffffff, /* dst_mask */ 70 false), /* pcrel_offset */74 FALSE), /* pcrel_offset */ 71 75 72 76 HOWTO (R_MPPCR, /* type */ … … 74 78 2, /* size (0 = byte, 1 = short, 2 = long) */ 75 79 32, /* bitsize */ 76 true, /* pc_relative */80 TRUE, /* pc_relative */ 77 81 0, /* bitpos */ 78 82 complain_overflow_signed, /* complain_on_overflow */ 79 83 NULL, /* special_function */ 80 84 "MPPCR", /* name */ 81 true, /* partial_inplace */85 TRUE, /* partial_inplace */ 82 86 0xffffffff, /* src_mask */ 83 87 0xffffffff, /* dst_mask */ 84 true), /* pcrel_offset */88 TRUE), /* pcrel_offset */ 85 89 86 90 HOWTO (R_ABS, /* type */ … … 88 92 2, /* size (0 = byte, 1 = short, 2 = long) */ 89 93 32, /* bitsize */ 90 false, /* pc_relative */94 FALSE, /* pc_relative */ 91 95 0, /* bitpos */ 92 96 complain_overflow_bitfield, /* complain_on_overflow */ 93 97 NULL, /* special_function */ 94 98 "ABS", /* name */ 95 true, /* partial_inplace */99 TRUE, /* partial_inplace */ 96 100 0xffffffff, /* src_mask */ 97 101 0xffffffff, /* dst_mask */ 98 false), /* pcrel_offset */102 FALSE), /* pcrel_offset */ 99 103 100 104 HOWTO (R_PPBASE, /* type */ … … 102 106 2, /* size (0 = byte, 1 = short, 2 = long) */ 103 107 32, /* bitsize */ 104 false, /* pc_relative */108 FALSE, /* pc_relative */ 105 109 0, /* bitpos */ 106 110 complain_overflow_dont, /* complain_on_overflow */ 107 111 ppbase_reloc, /* special_function */ 108 112 "PPBASE", /* name */ 109 true, /* partial_inplace */113 TRUE, /* partial_inplace */ 110 114 0xffffffff, /* src_mask */ 111 115 0xffffffff, /* dst_mask */ 112 false), /* pcrel_offset */116 FALSE), /* pcrel_offset */ 113 117 114 118 HOWTO (R_PPLBASE, /* type */ … … 116 120 2, /* size (0 = byte, 1 = short, 2 = long) */ 117 121 32, /* bitsize */ 118 false, /* pc_relative */122 FALSE, /* pc_relative */ 119 123 0, /* bitpos */ 120 124 complain_overflow_dont, /* complain_on_overflow */ 121 125 ppbase_reloc, /* special_function */ 122 126 "PPLBASE", /* name */ 123 true, /* partial_inplace */127 TRUE, /* partial_inplace */ 124 128 0xffffffff, /* src_mask */ 125 129 0xffffffff, /* dst_mask */ 126 false), /* pcrel_offset */130 FALSE), /* pcrel_offset */ 127 131 128 132 HOWTO (R_PP15, /* type */ … … 130 134 2, /* size (0 = byte, 1 = short, 2 = long) */ 131 135 15, /* bitsize */ 132 false, /* pc_relative */136 FALSE, /* pc_relative */ 133 137 6, /* bitpos */ 134 138 complain_overflow_dont, /* complain_on_overflow */ 135 139 glob15_reloc, /* special_function */ 136 140 "PP15", /* name */ 137 true, /* partial_inplace */141 TRUE, /* partial_inplace */ 138 142 0x1ffc0, /* src_mask */ 139 143 0x1ffc0, /* dst_mask */ 140 false), /* pcrel_offset */144 FALSE), /* pcrel_offset */ 141 145 142 146 HOWTO (R_PP15W, /* type */ … … 144 148 2, /* size (0 = byte, 1 = short, 2 = long) */ 145 149 15, /* bitsize */ 146 false, /* pc_relative */150 FALSE, /* pc_relative */ 147 151 6, /* bitpos */ 148 152 complain_overflow_dont, /* complain_on_overflow */ 149 153 glob15_reloc, /* special_function */ 150 154 "PP15W", /* name */ 151 true, /* partial_inplace */155 TRUE, /* partial_inplace */ 152 156 0x1ffc0, /* src_mask */ 153 157 0x1ffc0, /* dst_mask */ 154 false), /* pcrel_offset */158 FALSE), /* pcrel_offset */ 155 159 156 160 HOWTO (R_PP15H, /* type */ … … 158 162 2, /* size (0 = byte, 1 = short, 2 = long) */ 159 163 15, /* bitsize */ 160 false, /* pc_relative */164 FALSE, /* pc_relative */ 161 165 6, /* bitpos */ 162 166 complain_overflow_dont, /* complain_on_overflow */ 163 167 glob15_reloc, /* special_function */ 164 168 "PP15H", /* name */ 165 true, /* partial_inplace */169 TRUE, /* partial_inplace */ 166 170 0x1ffc0, /* src_mask */ 167 171 0x1ffc0, /* dst_mask */ 168 false), /* pcrel_offset */172 FALSE), /* pcrel_offset */ 169 173 170 174 HOWTO (R_PP16B, /* type */ … … 172 176 2, /* size (0 = byte, 1 = short, 2 = long) */ 173 177 16, /* bitsize */ 174 false, /* pc_relative */178 FALSE, /* pc_relative */ 175 179 6, /* bitpos */ 176 180 complain_overflow_dont, /* complain_on_overflow */ 177 181 glob16_reloc, /* special_function */ 178 182 "PP16B", /* name */ 179 true, /* partial_inplace */183 TRUE, /* partial_inplace */ 180 184 0x3ffc0, /* src_mask */ 181 185 0x3ffc0, /* dst_mask */ 182 false), /* pcrel_offset */186 FALSE), /* pcrel_offset */ 183 187 184 188 HOWTO (R_PPL15, /* type */ … … 186 190 2, /* size (0 = byte, 1 = short, 2 = long) */ 187 191 15, /* bitsize */ 188 false, /* pc_relative */192 FALSE, /* pc_relative */ 189 193 0, /* bitpos */ 190 194 complain_overflow_dont, /* complain_on_overflow */ 191 195 NULL, /* special_function */ 192 196 "PPL15", /* name */ 193 true, /* partial_inplace */197 TRUE, /* partial_inplace */ 194 198 0x7fff, /* src_mask */ 195 199 0x7fff, /* dst_mask */ 196 false), /* pcrel_offset */200 FALSE), /* pcrel_offset */ 197 201 198 202 HOWTO (R_PPL15W, /* type */ … … 200 204 2, /* size (0 = byte, 1 = short, 2 = long) */ 201 205 15, /* bitsize */ 202 false, /* pc_relative */206 FALSE, /* pc_relative */ 203 207 0, /* bitpos */ 204 208 complain_overflow_dont, /* complain_on_overflow */ 205 209 NULL, /* special_function */ 206 210 "PPL15W", /* name */ 207 true, /* partial_inplace */211 TRUE, /* partial_inplace */ 208 212 0x7fff, /* src_mask */ 209 213 0x7fff, /* dst_mask */ 210 false), /* pcrel_offset */214 FALSE), /* pcrel_offset */ 211 215 212 216 HOWTO (R_PPL15H, /* type */ … … 214 218 2, /* size (0 = byte, 1 = short, 2 = long) */ 215 219 15, /* bitsize */ 216 false, /* pc_relative */220 FALSE, /* pc_relative */ 217 221 0, /* bitpos */ 218 222 complain_overflow_dont, /* complain_on_overflow */ 219 223 NULL, /* special_function */ 220 224 "PPL15H", /* name */ 221 true, /* partial_inplace */225 TRUE, /* partial_inplace */ 222 226 0x7fff, /* src_mask */ 223 227 0x7fff, /* dst_mask */ 224 false), /* pcrel_offset */228 FALSE), /* pcrel_offset */ 225 229 226 230 HOWTO (R_PPL16B, /* type */ … … 228 232 2, /* size (0 = byte, 1 = short, 2 = long) */ 229 233 16, /* bitsize */ 230 false, /* pc_relative */234 FALSE, /* pc_relative */ 231 235 0, /* bitpos */ 232 236 complain_overflow_dont, /* complain_on_overflow */ 233 237 local16_reloc, /* special_function */ 234 238 "PPL16B", /* name */ 235 true, /* partial_inplace */239 TRUE, /* partial_inplace */ 236 240 0xffff, /* src_mask */ 237 241 0xffff, /* dst_mask */ 238 false), /* pcrel_offset */242 FALSE), /* pcrel_offset */ 239 243 240 244 HOWTO (R_PPN15, /* type */ … … 242 246 -2, /* size (0 = byte, 1 = short, 2 = long) */ 243 247 15, /* bitsize */ 244 false, /* pc_relative */248 FALSE, /* pc_relative */ 245 249 6, /* bitpos */ 246 250 complain_overflow_dont, /* complain_on_overflow */ 247 251 glob15_reloc, /* special_function */ 248 252 "PPN15", /* name */ 249 true, /* partial_inplace */253 TRUE, /* partial_inplace */ 250 254 0x1ffc0, /* src_mask */ 251 255 0x1ffc0, /* dst_mask */ 252 false), /* pcrel_offset */256 FALSE), /* pcrel_offset */ 253 257 254 258 HOWTO (R_PPN15W, /* type */ … … 256 260 -2, /* size (0 = byte, 1 = short, 2 = long) */ 257 261 15, /* bitsize */ 258 false, /* pc_relative */262 FALSE, /* pc_relative */ 259 263 6, /* bitpos */ 260 264 complain_overflow_dont, /* complain_on_overflow */ 261 265 glob15_reloc, /* special_function */ 262 266 "PPN15W", /* name */ 263 true, /* partial_inplace */267 TRUE, /* partial_inplace */ 264 268 0x1ffc0, /* src_mask */ 265 269 0x1ffc0, /* dst_mask */ 266 false), /* pcrel_offset */270 FALSE), /* pcrel_offset */ 267 271 268 272 HOWTO (R_PPN15H, /* type */ … … 270 274 -2, /* size (0 = byte, 1 = short, 2 = long) */ 271 275 15, /* bitsize */ 272 false, /* pc_relative */276 FALSE, /* pc_relative */ 273 277 6, /* bitpos */ 274 278 complain_overflow_dont, /* complain_on_overflow */ 275 279 glob15_reloc, /* special_function */ 276 280 "PPN15H", /* name */ 277 true, /* partial_inplace */281 TRUE, /* partial_inplace */ 278 282 0x1ffc0, /* src_mask */ 279 283 0x1ffc0, /* dst_mask */ 280 false), /* pcrel_offset */284 FALSE), /* pcrel_offset */ 281 285 282 286 HOWTO (R_PPN16B, /* type */ … … 284 288 -2, /* size (0 = byte, 1 = short, 2 = long) */ 285 289 16, /* bitsize */ 286 false, /* pc_relative */290 FALSE, /* pc_relative */ 287 291 6, /* bitpos */ 288 292 complain_overflow_dont, /* complain_on_overflow */ 289 293 glob16_reloc, /* special_function */ 290 294 "PPN16B", /* name */ 291 true, /* partial_inplace */295 TRUE, /* partial_inplace */ 292 296 0x3ffc0, /* src_mask */ 293 297 0x3ffc0, /* dst_mask */ 294 false), /* pcrel_offset */298 FALSE), /* pcrel_offset */ 295 299 296 300 HOWTO (R_PPLN15, /* type */ … … 298 302 -2, /* size (0 = byte, 1 = short, 2 = long) */ 299 303 15, /* bitsize */ 300 false, /* pc_relative */304 FALSE, /* pc_relative */ 301 305 0, /* bitpos */ 302 306 complain_overflow_dont, /* complain_on_overflow */ 303 307 NULL, /* special_function */ 304 308 "PPLN15", /* name */ 305 true, /* partial_inplace */309 TRUE, /* partial_inplace */ 306 310 0x7fff, /* src_mask */ 307 311 0x7fff, /* dst_mask */ 308 false), /* pcrel_offset */312 FALSE), /* pcrel_offset */ 309 313 310 314 HOWTO (R_PPLN15W, /* type */ … … 312 316 -2, /* size (0 = byte, 1 = short, 2 = long) */ 313 317 15, /* bitsize */ 314 false, /* pc_relative */318 FALSE, /* pc_relative */ 315 319 0, /* bitpos */ 316 320 complain_overflow_dont, /* complain_on_overflow */ 317 321 NULL, /* special_function */ 318 322 "PPLN15W", /* name */ 319 true, /* partial_inplace */323 TRUE, /* partial_inplace */ 320 324 0x7fff, /* src_mask */ 321 325 0x7fff, /* dst_mask */ 322 false), /* pcrel_offset */326 FALSE), /* pcrel_offset */ 323 327 324 328 HOWTO (R_PPLN15H, /* type */ … … 326 330 -2, /* size (0 = byte, 1 = short, 2 = long) */ 327 331 15, /* bitsize */ 328 false, /* pc_relative */332 FALSE, /* pc_relative */ 329 333 0, /* bitpos */ 330 334 complain_overflow_dont, /* complain_on_overflow */ 331 335 NULL, /* special_function */ 332 336 "PPLN15H", /* name */ 333 true, /* partial_inplace */337 TRUE, /* partial_inplace */ 334 338 0x7fff, /* src_mask */ 335 339 0x7fff, /* dst_mask */ 336 false), /* pcrel_offset */340 FALSE), /* pcrel_offset */ 337 341 338 342 HOWTO (R_PPLN16B, /* type */ … … 340 344 -2, /* size (0 = byte, 1 = short, 2 = long) */ 341 345 15, /* bitsize */ 342 false, /* pc_relative */346 FALSE, /* pc_relative */ 343 347 0, /* bitpos */ 344 348 complain_overflow_dont, /* complain_on_overflow */ 345 349 local16_reloc, /* special_function */ 346 350 "PPLN16B", /* name */ 347 true, /* partial_inplace */351 TRUE, /* partial_inplace */ 348 352 0xffff, /* src_mask */ 349 353 0xffff, /* dst_mask */ 350 false) /* pcrel_offset */354 FALSE) /* pcrel_offset */ 351 355 }; 352 356 … … 485 489 of this is a copy of _bfd_coff_generic_relocate_section. */ 486 490 487 static b oolean491 static bfd_boolean 488 492 coff_tic80_relocate_section (output_bfd, info, input_bfd, 489 493 input_section, contents, relocs, syms, … … 540 544 sym, &addend); 541 545 if (howto == NULL) 542 return false;546 return FALSE; 543 547 544 548 val = 0; … … 580 584 if (! ((*info->callbacks->undefined_symbol) 581 585 (info, h->root.root.string, input_bfd, input_section, 582 rel->r_vaddr - input_section->vma, true)))583 return false;586 rel->r_vaddr - input_section->vma, TRUE))) 587 return FALSE; 584 588 } 585 589 } … … 684 688 (*_bfd_error_handler) 685 689 (_("%s: bad reloc address 0x%lx in section `%s'"), 686 bfd_ get_filename (input_bfd),690 bfd_archive_filename (input_bfd), 687 691 (unsigned long) rel->r_vaddr, 688 692 bfd_get_section_name (input_bfd, input_section)); 689 return false;693 return FALSE; 690 694 case bfd_reloc_overflow: 691 695 { … … 701 705 name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); 702 706 if (name == NULL) 703 return false;707 return FALSE; 704 708 } 705 709 … … 707 711 (info, name, howto->name, (bfd_vma) 0, input_bfd, 708 712 input_section, rel->r_vaddr - input_section->vma))) 709 return false;713 return FALSE; 710 714 } 711 715 } 712 716 } 713 return true;717 return TRUE; 714 718 } 715 719 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.