aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-mn10200.c96
2 files changed, 33 insertions, 70 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e795782..e139d61 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+Fri Jan 3 16:54:08 1997 Jeffrey A Law (law@cygnus.com)
+
+ * reloc.c: Add BFD_RELOC_24.
+ * elf32-mn10200.c (enum reloc_type): Add 24bit and pcrel relocs.
+ (elf_mn10200_howto, mn10200_reloc_map): Corresponding changes.
+ * bfd-in2.h, libbfd.h: Rebuilt.
+
Fri Jan 3 16:58:31 1997 Richard Henderson <rth@tamu.edu>
elf64-alpha multiple .got rewrite:
diff --git a/bfd/elf32-mn10200.c b/bfd/elf32-mn10200.c
index 15f8f3a..f119c0a 100644
--- a/bfd/elf32-mn10200.c
+++ b/bfd/elf32-mn10200.c
@@ -1,5 +1,5 @@
/* Matsushita 10200 specific support for 32-bit ELF
- Copyright (C) 1996 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -40,13 +40,9 @@ enum reloc_type
R_MN10200_32,
R_MN10200_16,
R_MN10200_8,
-#if 0
- R_MN10200_PCREL32_1BYTE,
- R_MN10200_PCREL16_1BYTE,
- R_MN10200_PCREL8_1BYTE,
- R_MN10200_PCREL32_2BYTE,
- R_MN10200_PCREL16_2BYTE,
-#endif
+ R_MN10200_24,
+ R_MN10200_PCREL8,
+ R_MN10200_PCREL24,
R_MN10200_MAX
};
@@ -108,40 +104,22 @@ static reloc_howto_type elf_mn10200_howto_table[] =
0xff,
0xff,
false),
-#if 0
- /* Simple 32bit pc-relative reloc with a 1 byte adjustment
- to get the pc-relative offset correct. */
- HOWTO (R_MN10200_PCREL32_1BYTE,
+ /* Standard 24 bit reloc. */
+ HOWTO (R_MN10200_24,
0,
2,
- 32,
- true,
- 0,
- complain_overflow_bitfield,
- bfd_elf32_mn10200_reloc,
- "R_MN10200_PCREL32_1BYTE",
- true,
- 0xffffffff,
- 0xffffffff,
- false),
- /* Simple 16bit pc-relative reloc with a 1 byte adjustment
- to get the pc-relative offset correct. */
- HOWTO (R_MN10200_PCREL16_1BYTE,
- 0,
- 1,
- 16,
- true,
+ 24,
+ false,
0,
complain_overflow_bitfield,
- bfd_elf32_mn10200_reloc,
- "R_MN10200_PCREL16_1BYTE",
- true,
- 0xffff,
- 0xffff,
+ bfd_elf_generic_reloc,
+ "R_MN10200_24",
+ false,
+ 0xffffff,
+ 0xffffff,
false),
- /* Simple 8 pc-relative reloc with a 1 byte adjustment
- to get the pc-relative offset correct. */
- HOWTO (R_MN10200_PCREL8_1BYTE,
+ /* Simple 8 pc-relative reloc. */
+ HOWTO (R_MN10200_PCREL8,
0,
0,
8,
@@ -149,42 +127,26 @@ static reloc_howto_type elf_mn10200_howto_table[] =
0,
complain_overflow_bitfield,
bfd_elf32_mn10200_reloc,
- "R_MN10200_PCREL8_1BYTE",
+ "R_MN10200_PCREL8",
true,
0xff,
0xff,
true),
- /* Simple 32 pc-relative reloc with a 2 byte adjustment
+ /* Simple 32bit pc-relative reloc with a 1 byte adjustment
to get the pc-relative offset correct. */
- HOWTO (R_MN10200_PCREL32_2BYTE,
+ HOWTO (R_MN10200_PCREL24,
0,
2,
- 32,
- true,
- 0,
- complain_overflow_bitfield,
- bfd_elf32_mn10200_reloc,
- "R_MN10200_PCREL32_2BYTE",
- true,
- 0xffffffff,
- 0xffffffff,
- true),
- /* Simple 16 pc-relative reloc with a 2 byte adjustment
- to get the pc-relative offset correct. */
- HOWTO (R_MN10200_PCREL16_2BYTE,
- 0,
- 1,
- 16,
+ 24,
true,
0,
complain_overflow_bitfield,
bfd_elf32_mn10200_reloc,
- "R_MN10200_PCREL16_2BYTE",
+ "R_MN10200_PCREL24",
true,
- 0xffff,
- 0xffff,
- true),
-#endif
+ 0xffffff,
+ 0xffffff,
+ false),
};
struct mn10200_reloc_map
@@ -199,15 +161,9 @@ static const struct mn10200_reloc_map mn10200_reloc_map[] =
{ BFD_RELOC_32, R_MN10200_32, },
{ BFD_RELOC_16, R_MN10200_16, },
{ BFD_RELOC_8, R_MN10200_8, },
-#if 0
- { BFD_RELOC_MN10200_32B, R_MN10200_32B, },
- { BFD_RELOC_MN10200_16B, R_MN10200_16B, },
- { BFD_RELOC_32_PCREL, R_MN10200_PCREL32_1BYTE, },
- { BFD_RELOC_16_PCREL, R_MN10200_PCREL16_1BYTE, },
- { BFD_RELOC_8_PCREL, R_MN10200_PCREL8_1BYTE, },
- { BFD_RELOC_MN10200_32_PCREL, R_MN10200_PCREL32_2BYTE, },
- { BFD_RELOC_MN10200_16_PCREL, R_MN10200_PCREL16_2BYTE, },
-#endif
+ { BFD_RELOC_24, R_MN10200_24, },
+ { BFD_RELOC_8_PCREL, R_MN10200_PCREL8, },
+ { BFD_RELOC_24_PCREL, R_MN10200_PCREL24, },
};
static reloc_howto_type *