From 48bfecdd7180c1a10ba7caaae49f194150fa33a7 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 6 Aug 2002 02:29:25 +0000 Subject: [PATCH] * coff-rs6000.c (xcoff_howto_table): Fix src_mask entries. Make all relocs with bitsize == 16 have size = 1. (xcoff_reloc_type_ba): Correct src_mask and dst_mask adjustment. (xcoff_reloc_type_br): Likewise. (xcoff_reloc_type_crel): Likewise. (xcoff_ppc_relocate_section): Set up src_mask and dst_mask correctly. * coff64-rs6000.c (xcoff64_reloc_type_br): Correct src_mask and dst_mask adjustment. (xcoff64_ppc_relocate_section): Set up src_mask and dst_mask correctly. (xcoff64_howto_table): Fix src_mask entries. Make all relocs with bitsize == 16 have size = 1. --- bfd/ChangeLog | 14 +++++++ bfd/coff-rs6000.c | 93 +++++++++++++++++++++++---------------------- bfd/coff64-rs6000.c | 85 +++++++++++++++++++++-------------------- 3 files changed, 104 insertions(+), 88 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d175600879..5624683d7e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,17 @@ +2002-08-06 Alan Modra + + * coff-rs6000.c (xcoff_howto_table): Fix src_mask entries. Make all + relocs with bitsize == 16 have size = 1. + (xcoff_reloc_type_ba): Correct src_mask and dst_mask adjustment. + (xcoff_reloc_type_br): Likewise. + (xcoff_reloc_type_crel): Likewise. + (xcoff_ppc_relocate_section): Set up src_mask and dst_mask correctly. + * coff64-rs6000.c (xcoff64_reloc_type_br): Correct src_mask and + dst_mask adjustment. + (xcoff64_ppc_relocate_section): Set up src_mask and dst_mask correctly. + (xcoff64_howto_table): Fix src_mask entries. Make all relocs with + bitsize == 16 have size = 1. + 2002-08-01 Denis Chertykov * elf32-ip2k.c: Processor manufacturer changed to Ubicom. diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 3470953501..3e773239b1 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -588,7 +588,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_POS", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -603,7 +603,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_NEG", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -618,7 +618,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_REL", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -633,7 +633,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_TOC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -648,14 +648,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RTB", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* External TOC relative symbol. */ HOWTO (R_GL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -663,14 +663,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_GL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Local TOC relative symbol. */ HOWTO (R_TCL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -678,7 +678,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_TCL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -695,8 +695,8 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_BA_26", /* name */ true, /* partial_inplace */ - 0x3fffffc, /* src_mask */ - 0x3fffffc, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ EMPTY_HOWTO (9), @@ -712,8 +712,8 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_BR", /* name */ true, /* partial_inplace */ - 0x3fffffc, /* src_mask */ - 0x3fffffc, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ EMPTY_HOWTO (0xb), @@ -721,7 +721,7 @@ reloc_howto_type xcoff_howto_table[] = /* Indirect load. */ HOWTO (R_RL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -729,14 +729,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Load address. */ HOWTO (R_RLA, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -744,7 +744,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RLA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -757,7 +757,7 @@ reloc_howto_type xcoff_howto_table[] = 32, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ + complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "R_REF", /* name */ false, /* partial_inplace */ @@ -771,7 +771,7 @@ reloc_howto_type xcoff_howto_table[] = /* TOC relative indirect load. */ HOWTO (R_TRL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -779,14 +779,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_TRL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* TOC relative load address. */ HOWTO (R_TRLA, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -794,7 +794,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_TRLA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -809,7 +809,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RRTBI", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -824,14 +824,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RRTBA", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable call absolute indirect. */ HOWTO (R_CAI, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -839,14 +839,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_CAI", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable call relative. */ HOWTO (R_CREL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -854,7 +854,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_CREL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -869,8 +869,8 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch absolute. */ @@ -884,8 +884,8 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBAC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch relative. */ @@ -899,14 +899,14 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBR_26", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBRC, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -914,7 +914,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBRC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -929,7 +929,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_BA_16", /* name */ true, /* partial_inplace */ - 0xfffc, /* src_mask */ + 0x0003, /* src_mask */ 0xfffc, /* dst_mask */ false), /* pcrel_offset */ @@ -944,7 +944,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBR_16", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -959,7 +959,7 @@ reloc_howto_type xcoff_howto_table[] = 0, /* special_function */ "R_RBA_16", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -2885,8 +2885,8 @@ xcoff_reloc_type_ba (input_bfd, input_section, output_bfd, rel, sym, howto, bfd_vma *relocation; bfd_byte *contents ATTRIBUTE_UNUSED; { - howto->src_mask &= ~3; - howto->dst_mask = howto->src_mask; + howto->src_mask |= 3; + howto->dst_mask &= ~3; *relocation = val + addend; @@ -2960,8 +2960,8 @@ xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto, } howto->pc_relative = true; - howto->src_mask &= ~3; - howto->dst_mask = howto->src_mask; + howto->src_mask |= 3; + howto->dst_mask &= ~3; /* A PC relative reloc includes the section address. */ addend += input_section->vma; @@ -2987,8 +2987,8 @@ xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto, bfd_byte *contents ATTRIBUTE_UNUSED; { howto->pc_relative = true; - howto->src_mask &= ~3; - howto->dst_mask = howto->src_mask; + howto->src_mask |= 3; + howto->dst_mask &= ~3; /* A PC relative reloc includes the section address. */ addend += input_section->vma; @@ -3348,7 +3348,8 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd, howto.special_function = NULL; howto.name = "internal"; howto.partial_inplace = true; - howto.src_mask = howto.dst_mask = N_ONES(howto.bitsize); + howto.dst_mask = N_ONES (howto.bitsize); + howto.src_mask = ~howto.dst_mask & N_ONES (8 << howto.size); howto.pcrel_offset = false; /* symbol */ diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 15ef61b66d..6badb4d28a 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -1132,8 +1132,8 @@ xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto, } howto->pc_relative = true; - howto->src_mask &= ~3; - howto->dst_mask = howto->src_mask; + howto->src_mask |= 3; + howto->dst_mask &= ~3; /* A PC relative reloc includes the section address. */ addend += input_section->vma; @@ -1196,7 +1196,8 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd, howto.special_function = NULL; howto.name = "internal"; howto.partial_inplace = true; - howto.src_mask = howto.dst_mask = N_ONES(howto.bitsize); + howto.dst_mask = N_ONES (howto.bitsize); + howto.src_mask = ~howto.dst_mask & N_ONES (8 << howto.size); howto.pcrel_offset = false; /* symbol */ @@ -1357,7 +1358,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_POS_64", /* name */ true, /* partial_inplace */ - MINUS_ONE, /* src_mask */ + 0, /* src_mask */ MINUS_ONE, /* dst_mask */ false), /* pcrel_offset */ @@ -1372,7 +1373,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_NEG", /* name */ true, /* partial_inplace */ - MINUS_ONE, /* src_mask */ + 0, /* src_mask */ MINUS_ONE, /* dst_mask */ false), /* pcrel_offset */ @@ -1387,7 +1388,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_REL", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1402,7 +1403,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_TOC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1417,14 +1418,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RTB", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* External TOC relative symbol. */ HOWTO (R_GL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1432,14 +1433,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_GL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Local TOC relative symbol. */ HOWTO (R_TCL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1447,7 +1448,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_TCL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1464,8 +1465,8 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_BA_26", /* name */ true, /* partial_inplace */ - 0x3fffffc, /* src_mask */ - 0x3fffffc, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ EMPTY_HOWTO (9), @@ -1481,8 +1482,8 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_BR", /* name */ true, /* partial_inplace */ - 0x3fffffc, /* src_mask */ - 0x3fffffc, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ EMPTY_HOWTO (0xb), @@ -1490,7 +1491,7 @@ reloc_howto_type xcoff64_howto_table[] = /* Indirect load. */ HOWTO (R_RL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1498,14 +1499,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Load address. */ HOWTO (R_RLA, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1513,7 +1514,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RLA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1540,7 +1541,7 @@ reloc_howto_type xcoff64_howto_table[] = /* TOC relative indirect load. */ HOWTO (R_TRL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1548,14 +1549,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_TRL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* TOC relative load address. */ HOWTO (R_TRLA, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1563,7 +1564,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_TRLA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1578,7 +1579,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RRTBI", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1593,14 +1594,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RRTBA", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable call absolute indirect. */ HOWTO (R_CAI, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1608,14 +1609,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_CAI", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable call relative. */ HOWTO (R_CREL, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1623,7 +1624,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_CREL", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1638,8 +1639,8 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBA", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch absolute. */ @@ -1653,8 +1654,8 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBAC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch relative. */ @@ -1668,14 +1669,14 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBR_26", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ - 0xffff, /* dst_mask */ + 0xfc000003, /* src_mask */ + 0x03fffffc, /* dst_mask */ false), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBRC, /* type */ 0, /* rightshift */ - 2, /* size (0 = byte, 1 = short, 2 = long) */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ false, /* pc_relative */ 0, /* bitpos */ @@ -1683,7 +1684,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBRC", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1697,7 +1698,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_POS_32", /* name */ true, /* partial_inplace */ - 0xffffffff, /* src_mask */ + 0, /* src_mask */ 0xffffffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1712,7 +1713,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_BA_16", /* name */ true, /* partial_inplace */ - 0xfffc, /* src_mask */ + 0x0003, /* src_mask */ 0xfffc, /* dst_mask */ false), /* pcrel_offset */ @@ -1727,7 +1728,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBR_16", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ @@ -1742,7 +1743,7 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* special_function */ "R_RBA_16", /* name */ true, /* partial_inplace */ - 0xffff, /* src_mask */ + 0, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ -- 2.34.1