diff options
author | Jeff Law <law@redhat.com> | 1996-08-31 16:24:18 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1996-08-31 16:24:18 +0000 |
commit | 237b5c4c9a06de328ad591ef904d73d47f9344d7 (patch) | |
tree | 7864aeeaaad83db3ce9334c7e1b27996f444334c /bfd/elf32-v850.c | |
parent | 69ae4b82dccc467ad7d23a0c90b04ee4b884e39e (diff) | |
download | gdb-237b5c4c9a06de328ad591ef904d73d47f9344d7.zip gdb-237b5c4c9a06de328ad591ef904d73d47f9344d7.tar.gz gdb-237b5c4c9a06de328ad591ef904d73d47f9344d7.tar.bz2 |
* elf32-v850.c (enum reloc_type): Add R_V850_{32,16,8}.
(elf_v850_howto_table): Add support for R_V850_{32,16,8}.
(v850_reloc_map): Add translation from BFD_RELOC_{32,16,8}
to R_V850_{32,16,8}.
So we don't get "reloc XXX not supported" messages anymore.
Diffstat (limited to 'bfd/elf32-v850.c')
-rw-r--r-- | bfd/elf32-v850.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index d1c1d00..22921b7 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -40,6 +40,9 @@ enum reloc_type R_V850_HI16_S, R_V850_HI16, R_V850_LO16, + R_V850_32, + R_V850_16, + R_V850_8, R_V850_max }; @@ -134,6 +137,51 @@ static reloc_howto_type elf_v850_howto_table[] = 0xffff, /* src_mask */ 0xffff, /* dst_mask */ false), /* pcrel_offset */ + + /* Simple 32bit reloc. */ + HOWTO (R_V850_32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_V850_32", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0xffffffff, /* dst_mask */ + false), /* pcrel_offset */ + + /* Simple 16bit reloc. */ + HOWTO (R_V850_16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_V850_16", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + false), /* pcrel_offset */ + + /* Simple 8bit reloc. */ + HOWTO (R_V850_8, /* type */ + 0, /* rightshift */ + 0, /* size (0 = byte, 1 = short, 2 = long) */ + 8, /* bitsize */ + false, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_V850_8", /* name */ + false, /* partial_inplace */ + 0, /* src_mask */ + 0xff, /* dst_mask */ + false), /* pcrel_offset */ }; /* Map BFD reloc types to V850 ELF reloc types. */ @@ -152,6 +200,9 @@ static const struct v850_reloc_map v850_reloc_map[] = { BFD_RELOC_HI16_S, R_V850_HI16_S, }, { BFD_RELOC_HI16, R_V850_HI16, }, { BFD_RELOC_LO16, R_V850_LO16, }, + { BFD_RELOC_32, R_V850_32, }, + { BFD_RELOC_16, R_V850_16, }, + { BFD_RELOC_8, R_V850_8, }, }; static reloc_howto_type * |