GNU Binutils with patches for OS216
修订版 | 5fd63999813544012111697f77f3b4c87b91a1a8 (tree) |
---|---|
时间 | 2002-12-21 06:13:19 |
作者 | DJ Delorie <dj@redh...> |
Commiter | DJ Delorie |
* reloc.c: Add BFD_RELOC_XSTORMY16_12.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
* elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12.
(xstormy16_reloc_map): Add R_XSTORMY16_12.
@@ -1,3 +1,11 @@ | ||
1 | +2002-12-20 DJ Delorie <dj@redhat.com> | |
2 | + | |
3 | + * reloc.c: Add BFD_RELOC_XSTORMY16_12. | |
4 | + * libbfd.h: Regenerate. | |
5 | + * bfd-in2.h: Regenerate. | |
6 | + * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12. | |
7 | + (xstormy16_reloc_map): Add R_XSTORMY16_12. | |
8 | + | |
1 | 9 | 2002-12-19 Kazu Hirata <kazu@cs.umass.edu> |
2 | 10 | |
3 | 11 | * doc/bfdint.texi: Fix typos. |
@@ -3237,6 +3237,7 @@ to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */ | ||
3237 | 3237 | |
3238 | 3238 | /* Sony Xstormy16 Relocations. */ |
3239 | 3239 | BFD_RELOC_XSTORMY16_REL_12, |
3240 | + BFD_RELOC_XSTORMY16_12, | |
3240 | 3241 | BFD_RELOC_XSTORMY16_24, |
3241 | 3242 | BFD_RELOC_XSTORMY16_FPTR16, |
3242 | 3243 |
@@ -238,6 +238,21 @@ static reloc_howto_type xstormy16_elf_howto_table [] = | ||
238 | 238 | 0, /* src_mask */ |
239 | 239 | 0xffff, /* dst_mask */ |
240 | 240 | FALSE), /* pcrel_offset */ |
241 | + | |
242 | + /* A 12 bit absolute relocation. */ | |
243 | + HOWTO (R_XSTORMY16_12, /* type */ | |
244 | + 0, /* rightshift */ | |
245 | + 1, /* size (0 = byte, 1 = short, 2 = long) */ | |
246 | + 12, /* bitsize */ | |
247 | + FALSE, /* pc_relative */ | |
248 | + 0, /* bitpos */ | |
249 | + complain_overflow_signed, /* complain_on_overflow */ | |
250 | + bfd_elf_generic_reloc, /* special_function */ | |
251 | + "R_XSTORMY16_12", /* name */ | |
252 | + FALSE, /* partial_inplace */ | |
253 | + 0x0000, /* src_mask */ | |
254 | + 0x0fff, /* dst_mask */ | |
255 | + FALSE), /* pcrel_offset */ | |
241 | 256 | }; |
242 | 257 | |
243 | 258 | static reloc_howto_type xstormy16_elf_howto_table2 [] = |
@@ -297,6 +312,7 @@ static const reloc_map xstormy16_reloc_map [] = | ||
297 | 312 | { BFD_RELOC_XSTORMY16_FPTR16, R_XSTORMY16_FPTR16, xstormy16_elf_howto_table }, |
298 | 313 | { BFD_RELOC_LO16, R_XSTORMY16_LO16, xstormy16_elf_howto_table }, |
299 | 314 | { BFD_RELOC_HI16, R_XSTORMY16_HI16, xstormy16_elf_howto_table }, |
315 | + { BFD_RELOC_XSTORMY16_12, R_XSTORMY16_12, xstormy16_elf_howto_table }, | |
300 | 316 | { BFD_RELOC_VTABLE_INHERIT, R_XSTORMY16_GNU_VTINHERIT, xstormy16_elf_howto_table2 }, |
301 | 317 | { BFD_RELOC_VTABLE_ENTRY, R_XSTORMY16_GNU_VTENTRY, xstormy16_elf_howto_table2 }, |
302 | 318 | }; |
@@ -332,7 +348,7 @@ xstormy16_info_to_howto_rela (abfd, cache_ptr, dst) | ||
332 | 348 | { |
333 | 349 | unsigned int r_type = ELF32_R_TYPE (dst->r_info); |
334 | 350 | |
335 | - if (r_type <= (unsigned int) R_XSTORMY16_HI16) | |
351 | + if (r_type <= (unsigned int) R_XSTORMY16_12) | |
336 | 352 | cache_ptr->howto = &xstormy16_elf_howto_table [r_type]; |
337 | 353 | else if (r_type - R_XSTORMY16_GNU_VTINHERIT |
338 | 354 | <= (unsigned int) R_XSTORMY16_GNU_VTENTRY) |
@@ -1367,6 +1367,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", | ||
1367 | 1367 | "BFD_RELOC_H8_DIR24R8", |
1368 | 1368 | "BFD_RELOC_H8_DIR32A16", |
1369 | 1369 | "BFD_RELOC_XSTORMY16_REL_12", |
1370 | + "BFD_RELOC_XSTORMY16_12", | |
1370 | 1371 | "BFD_RELOC_XSTORMY16_24", |
1371 | 1372 | "BFD_RELOC_XSTORMY16_FPTR16", |
1372 | 1373 | "BFD_RELOC_VAX_GLOB_DAT", |
@@ -3597,6 +3597,8 @@ ENUMDOC | ||
3597 | 3597 | ENUM |
3598 | 3598 | BFD_RELOC_XSTORMY16_REL_12 |
3599 | 3599 | ENUMX |
3600 | + BFD_RELOC_XSTORMY16_12 | |
3601 | +ENUMX | |
3600 | 3602 | BFD_RELOC_XSTORMY16_24 |
3601 | 3603 | ENUMX |
3602 | 3604 | BFD_RELOC_XSTORMY16_FPTR16 |