summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/bfd/elf32-d30v.c
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2004-05-17 20:42:59 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2004-05-17 20:42:59 +0000
commitdabfd0a2b923dc8dd2fab68d1669102a0aa4352c (patch)
treed015d45f09daaa846ca3dc8ca58b731e65c28eea /gnu/usr.bin/binutils/bfd/elf32-d30v.c
parentb92d90de71fbbb34bdcd7269aa7b30856e0b4f06 (diff)
import binutils 2.14 (excluding testsuites, .info files, and .po files)
Diffstat (limited to 'gnu/usr.bin/binutils/bfd/elf32-d30v.c')
-rw-r--r--gnu/usr.bin/binutils/bfd/elf32-d30v.c102
1 files changed, 52 insertions, 50 deletions
diff --git a/gnu/usr.bin/binutils/bfd/elf32-d30v.c b/gnu/usr.bin/binutils/bfd/elf32-d30v.c
index 249051378f3..4b184d63554 100644
--- a/gnu/usr.bin/binutils/bfd/elf32-d30v.c
+++ b/gnu/usr.bin/binutils/bfd/elf32-d30v.c
@@ -1,5 +1,6 @@
/* D30V-specific support for 32-bit ELF
- Copyright 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+ Copyright 1997, 1998, 1999, 2000, 2001, 2002
+ Free Software Foundation, Inc.
Contributed by Martin Hunt (hunt@cygnus.com).
This file is part of BFD, the Binary File Descriptor library.
@@ -27,9 +28,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
static void d30v_info_to_howto_rel
- PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+ PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
static void d30v_info_to_howto_rela
- PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
+ PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
static bfd_reloc_status_type bfd_elf_d30v_reloc PARAMS ((
bfd *abfd,
arelent *reloc_entry,
@@ -54,195 +55,195 @@ static reloc_howto_type elf_d30v_howto_table[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D30V_NONE", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
/* A 6 bit absolute relocation */
HOWTO (R_D30V_6, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
6, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D30V_6", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3f, /* src_mask */
0x3f, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
/* A relative 9 bit relocation, right shifted by 3 */
HOWTO (R_D30V_9_PCREL, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
6, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_9_PCREL", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3f, /* src_mask */
0x3f, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* A relative 9 bit relocation, right shifted by 3 */
HOWTO (R_D30V_9_PCREL_R, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
6, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_9_PCREL_R", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3f, /* src_mask */
0x3f, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* An absolute 15 bit relocation, right shifted by 3 */
HOWTO (R_D30V_15, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
12, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D30V_15", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0xfff, /* src_mask */
0xfff, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
/* A relative 15 bit relocation, right shifted by 3 */
HOWTO (R_D30V_15_PCREL, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
12, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_15_PCREL", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0xfff, /* src_mask */
0xfff, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* A relative 15 bit relocation, right shifted by 3 */
HOWTO (R_D30V_15_PCREL_R, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
12, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_15_PCREL_R", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0xfff, /* src_mask */
0xfff, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* An absolute 21 bit relocation, right shifted by 3 */
HOWTO (R_D30V_21, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
18, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D30V_21", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3ffff, /* src_mask */
0x3ffff, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
/* A relative 21 bit relocation, right shifted by 3 */
HOWTO (R_D30V_21_PCREL, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
18, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_21_PCREL", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3ffff, /* src_mask */
0x3ffff, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* A relative 21 bit relocation, right shifted by 3, in the Right container */
HOWTO (R_D30V_21_PCREL_R, /* type */
3, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
18, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc_21, /* special_function */
"R_D30V_21_PCREL_R", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0x3ffff, /* src_mask */
0x3ffff, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* A D30V 32 bit absolute relocation */
HOWTO (R_D30V_32, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_d30v_reloc, /* special_function */
"R_D30V_32", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
/* A relative 32 bit relocation */
HOWTO (R_D30V_32_PCREL, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- true, /* pc_relative */
+ TRUE, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
bfd_elf_d30v_reloc, /* special_function */
"R_D30V_32_PCREL", /* name */
- false, /* partial_inplace */
+ FALSE, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- true), /* pcrel_offset */
+ TRUE), /* pcrel_offset */
/* A regular 32 bit absolute relocation */
HOWTO (R_D30V_32_NORMAL, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
- false, /* pc_relative */
+ FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
- "R_D30V_32_NORMAL", /* name */
- false, /* partial_inplace */
+ "R_D30V_32_NORMAL", /* name */
+ FALSE, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
- false), /* pcrel_offset */
+ FALSE), /* pcrel_offset */
};
@@ -313,7 +314,7 @@ bfd_elf_d30v_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
/* Here the variable relocation holds the final address of the
symbol we are relocating against, plus any addend. */
- if (howto->pc_relative == true)
+ if (howto->pc_relative)
{
tmp_addr = input_section->output_section->vma + input_section->output_offset
+ reloc_entry->address;
@@ -332,7 +333,7 @@ bfd_elf_d30v_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
relocation += num;
- if (howto->pc_relative == true && howto->bitsize == 32)
+ if (howto->pc_relative && howto->bitsize == 32)
{
/* The D30V has a PC that doesn't wrap and PC-relative jumps are
signed, so a PC-relative jump can't be more than +/- 2^31 bytes.
@@ -422,11 +423,11 @@ bfd_elf_d30v_reloc_21 (abfd, reloc_entry, symbol, data, input_section, output_bf
/* Here the variable relocation holds the final address of the
symbol we are relocating against, plus any addend. */
- if (howto->pc_relative == true)
+ if (howto->pc_relative)
{
relocation -= (input_section->output_section->vma
+ input_section->output_offset);
- if (howto->pcrel_offset == true)
+ if (howto->pcrel_offset)
relocation -= reloc_entry->address;
}
@@ -521,7 +522,7 @@ static void
d30v_info_to_howto_rel (abfd, cache_ptr, dst)
bfd *abfd ATTRIBUTE_UNUSED;
arelent *cache_ptr;
- Elf32_Internal_Rel *dst;
+ Elf_Internal_Rela *dst;
{
unsigned int r_type;
@@ -536,7 +537,7 @@ static void
d30v_info_to_howto_rela (abfd, cache_ptr, dst)
bfd *abfd ATTRIBUTE_UNUSED;
arelent *cache_ptr;
- Elf32_Internal_Rela *dst;
+ Elf_Internal_Rela *dst;
{
unsigned int r_type;
@@ -546,7 +547,8 @@ d30v_info_to_howto_rela (abfd, cache_ptr, dst)
}
#define ELF_ARCH bfd_arch_d30v
-#define ELF_MACHINE_CODE EM_CYGNUS_D30V
+#define ELF_MACHINE_CODE EM_D30V
+#define ELF_MACHINE_ALT1 EM_CYGNUS_D30V
#define ELF_MAXPAGESIZE 0x1000
#define TARGET_BIG_SYM bfd_elf32_d30v_vec