| Index: bfd/coff64-rs6000.c
|
| diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
|
| index 031385deeedd26eeab8504ced446842cad2ac7f8..6c92e26a9f00cb979fc425e0de56cca097c43de5 100644
|
| --- a/bfd/coff64-rs6000.c
|
| +++ b/bfd/coff64-rs6000.c
|
| @@ -1373,7 +1373,7 @@ xcoff64_ppc_relocate_section (bfd *output_bfd,
|
|
|
| reloc_howto_type xcoff64_howto_table[] =
|
| {
|
| - /* Standard 64 bit relocation. */
|
| + /* 0x00: Standard 64 bit relocation. */
|
| HOWTO (R_POS, /* type */
|
| 0, /* rightshift */
|
| 4, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1388,7 +1388,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| MINUS_ONE, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* 64 bit relocation, but store negative value. */
|
| + /* 0x01: 64 bit relocation, but store negative value. */
|
| HOWTO (R_NEG, /* type */
|
| 0, /* rightshift */
|
| -4, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1403,7 +1403,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| MINUS_ONE, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* 32 bit PC relative relocation. */
|
| + /* 0x02: 32 bit PC relative relocation. */
|
| HOWTO (R_REL, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1418,7 +1418,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* 16 bit TOC relative relocation. */
|
| + /* 0x03: 16 bit TOC relative relocation. */
|
| HOWTO (R_TOC, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1433,7 +1433,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* I don't really know what this is. */
|
| + /* 0x04: I don't really know what this is. */
|
| HOWTO (R_RTB, /* type */
|
| 1, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1448,7 +1448,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* External TOC relative symbol. */
|
| + /* 0x05: External TOC relative symbol. */
|
| HOWTO (R_GL, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1463,7 +1463,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Local TOC relative symbol. */
|
| + /* 0x06: Local TOC relative symbol. */
|
| HOWTO (R_TCL, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1480,7 +1480,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
|
|
| EMPTY_HOWTO (7),
|
|
|
| - /* Non modifiable absolute branch. */
|
| + /* 0x08: Non modifiable absolute branch. */
|
| HOWTO (R_BA, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1497,7 +1497,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
|
|
| EMPTY_HOWTO (9),
|
|
|
| - /* Non modifiable relative branch. */
|
| + /* 0x0a: Non modifiable relative branch. */
|
| HOWTO (R_BR, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1514,7 +1514,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
|
|
| EMPTY_HOWTO (0xb),
|
|
|
| - /* Indirect load. */
|
| + /* 0x0c: Indirect load. */
|
| HOWTO (R_RL, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1529,7 +1529,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Load address. */
|
| + /* 0x0d: Load address. */
|
| HOWTO (R_RLA, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1546,7 +1546,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
|
|
| EMPTY_HOWTO (0xe),
|
|
|
| - /* Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
|
| + /* 0x0f: Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
|
| HOWTO (R_REF, /* type */
|
| 0, /* rightshift */
|
| 0, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1564,7 +1564,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| EMPTY_HOWTO (0x10),
|
| EMPTY_HOWTO (0x11),
|
|
|
| - /* TOC relative indirect load. */
|
| + /* 0x12: TOC relative indirect load. */
|
| HOWTO (R_TRL, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1579,7 +1579,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* TOC relative load address. */
|
| + /* 0x13: TOC relative load address. */
|
| HOWTO (R_TRLA, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1594,7 +1594,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable relative branch. */
|
| + /* 0x14: Modifiable relative branch. */
|
| HOWTO (R_RRTBI, /* type */
|
| 1, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1609,7 +1609,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable absolute branch. */
|
| + /* 0x15: Modifiable absolute branch. */
|
| HOWTO (R_RRTBA, /* type */
|
| 1, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1624,7 +1624,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable call absolute indirect. */
|
| + /* 0x16: Modifiable call absolute indirect. */
|
| HOWTO (R_CAI, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1639,7 +1639,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable call relative. */
|
| + /* 0x17: Modifiable call relative. */
|
| HOWTO (R_CREL, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1654,7 +1654,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch absolute. */
|
| + /* 0x18: Modifiable branch absolute. */
|
| HOWTO (R_RBA, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1669,7 +1669,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0x03fffffc, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch absolute. */
|
| + /* 0x19: Modifiable branch absolute. */
|
| HOWTO (R_RBAC, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1684,7 +1684,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch relative. */
|
| + /* 0x1a: Modifiable branch relative. */
|
| HOWTO (R_RBR, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1699,7 +1699,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0x03fffffc, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch absolute. */
|
| + /* 0x1b: Modifiable branch absolute. */
|
| HOWTO (R_RBRC, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1714,6 +1714,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| + /* 0x1c: Standard 32 bit relocation. */
|
| HOWTO (R_POS, /* type */
|
| 0, /* rightshift */
|
| 2, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1728,7 +1729,7 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xffffffff, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* 16 bit Non modifiable absolute branch. */
|
| + /* 0x1d: 16 bit Non modifiable absolute branch. */
|
| HOWTO (R_BA, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1743,22 +1744,22 @@ reloc_howto_type xcoff64_howto_table[] =
|
| 0xfffc, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch relative. */
|
| + /* 0x1e: Modifiable branch relative. */
|
| HOWTO (R_RBR, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| 16, /* bitsize */
|
| - FALSE, /* pc_relative */
|
| + TRUE, /* pc_relative */
|
| 0, /* bitpos */
|
| complain_overflow_signed, /* complain_on_overflow */
|
| 0, /* special_function */
|
| "R_RBR_16", /* name */
|
| TRUE, /* partial_inplace */
|
| - 0xffff, /* src_mask */
|
| - 0xffff, /* dst_mask */
|
| + 0xfffc, /* src_mask */
|
| + 0xfffc, /* dst_mask */
|
| FALSE), /* pcrel_offset */
|
|
|
| - /* Modifiable branch absolute. */
|
| + /* 0x1f: Modifiable branch absolute. */
|
| HOWTO (R_RBA, /* type */
|
| 0, /* rightshift */
|
| 1, /* size (0 = byte, 1 = short, 2 = long) */
|
| @@ -1826,6 +1827,11 @@ xcoff64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
|
| return &xcoff64_howto_table[8];
|
| case BFD_RELOC_PPC_TOC16:
|
| return &xcoff64_howto_table[3];
|
| + case BFD_RELOC_16:
|
| + /* Note that this relocation is only internally used by gas. */
|
| + return &xcoff64_howto_table[0xc];
|
| + case BFD_RELOC_PPC_B16:
|
| + return &xcoff64_howto_table[0x1e];
|
| case BFD_RELOC_32:
|
| case BFD_RELOC_CTOR:
|
| return &xcoff64_howto_table[0x1c];
|
| @@ -2668,7 +2674,7 @@ const bfd_target rs6000coff64_vec =
|
| },
|
|
|
| /* Generic */
|
| - bfd_true,
|
| + _bfd_archive_close_and_cleanup,
|
| bfd_true,
|
| coff_new_section_hook,
|
| _bfd_generic_get_section_contents,
|
| @@ -2710,6 +2716,7 @@ const bfd_target rs6000coff64_vec =
|
| coff_bfd_is_target_special_symbol,
|
| coff_get_lineno,
|
| coff_find_nearest_line,
|
| + _bfd_generic_find_nearest_line_discriminator,
|
| _bfd_generic_find_line,
|
| coff_find_inliner_info,
|
| coff_bfd_make_debug_symbol,
|
| @@ -2925,7 +2932,7 @@ const bfd_target aix5coff64_vec =
|
| },
|
|
|
| /* Generic */
|
| - bfd_true,
|
| + _bfd_archive_close_and_cleanup,
|
| bfd_true,
|
| coff_new_section_hook,
|
| _bfd_generic_get_section_contents,
|
| @@ -2967,6 +2974,7 @@ const bfd_target aix5coff64_vec =
|
| coff_bfd_is_target_special_symbol,
|
| coff_get_lineno,
|
| coff_find_nearest_line,
|
| + _bfd_generic_find_nearest_line_discriminator,
|
| _bfd_generic_find_line,
|
| coff_find_inliner_info,
|
| coff_bfd_make_debug_symbol,
|
|
|