diff options
author | Tom Rix <trix@redhat.com> | 2002-02-21 03:57:36 +0000 |
---|---|---|
committer | Tom Rix <trix@redhat.com> | 2002-02-21 03:57:36 +0000 |
commit | bfa991262962ad43c9f0019816a396be3c0a7405 (patch) | |
tree | deaf71d7d9ae448026278db3db27d6a82db7086c /bfd | |
parent | 4925178bba3e6247808f2d7888205b4b865fa34c (diff) | |
download | gdb-bfa991262962ad43c9f0019816a396be3c0a7405.tar.gz |
XCOFF booke tests. Fix tlbre, tlbwe ppc WS field.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/coff-rs6000.c | 20 | ||||
-rw-r--r-- | bfd/coff64-rs6000.c | 21 |
3 files changed, 44 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e964de5346c..afa94cd7409 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2002-02-20 Tom Rix <trix@redhat.com> + + * coff-rs6000.c (xcoff_howto_table): Add 16 bit R_BA. + (_bfd_xcoff_reloc_type_lookup): Use it. + * coff64-rs6000.c (xcoff64_howto_table): Same. + (xcoff64_reloc_type_lookup): Same. + 2002-02-20 Peter Schauer <pes@regent.e-technik.tu-muenchen.de> * osf-core.c (osf_core_vec): OSF/1 (Digital Unix) core files are diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 75ed122c4fa..3c083c967c5 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -857,7 +857,7 @@ reloc_howto_type xcoff_howto_table[] = 0xffff, /* dst_mask */ false), /* pcrel_offset */ - HOWTO (0, /* type */ + HOWTO (0x1c, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ @@ -869,8 +869,22 @@ reloc_howto_type xcoff_howto_table[] = true, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false) /* pcrel_offset */ + false), /* pcrel_offset */ + /* 16 bit Non modifiable absolute branch. */ + HOWTO (0x1d, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + 0, /* special_function */ + "R_BA", /* name */ + true, /* partial_inplace */ + 0xfffc, /* src_mask */ + 0xfffc, /* dst_mask */ + false), /* pcrel_offset */ }; void @@ -913,6 +927,8 @@ _bfd_xcoff_reloc_type_lookup (abfd, code) { case BFD_RELOC_PPC_B26: return &xcoff_howto_table[0xa]; + case BFD_RELOC_PPC_BA16: + return &xcoff_howto_table[0x1d]; case BFD_RELOC_PPC_BA26: return &xcoff_howto_table[8]; case BFD_RELOC_PPC_TOC16: diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 288f6209220..3bfbed6023e 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -1714,7 +1714,7 @@ reloc_howto_type xcoff64_howto_table[] = 0xffff, /* dst_mask */ false), /* pcrel_offset */ - HOWTO (0, /* type */ + HOWTO (0x1c, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ @@ -1726,7 +1726,22 @@ reloc_howto_type xcoff64_howto_table[] = true, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false) /* pcrel_offset */ + false), /* pcrel_offset */ + + /* 16 bit Non modifiable absolute branch. */ + HOWTO (0x1d, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + 0, /* special_function */ + "R_BA", /* name */ + true, /* partial_inplace */ + 0xfffc, /* src_mask */ + 0xfffc, /* dst_mask */ + false), /* pcrel_offset */ }; void @@ -1769,6 +1784,8 @@ xcoff64_reloc_type_lookup (abfd, code) { case BFD_RELOC_PPC_B26: return &xcoff64_howto_table[0xa]; + case BFD_RELOC_PPC_BA16: + return &xcoff64_howto_table[0x1d]; case BFD_RELOC_PPC_BA26: return &xcoff64_howto_table[8]; case BFD_RELOC_PPC_TOC16: |