diff options
Diffstat (limited to 'bfd/elf32-mips.c')
-rw-r--r-- | bfd/elf32-mips.c | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 3d39dc9..8169991 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -771,11 +771,35 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ - /* A placeholder for MIPS16 reference to global offset table. */ - EMPTY_HOWTO (R_MIPS16_GOT16), + /* A MIPS16 reference to the global offset table. */ + HOWTO (R_MIPS16_GOT16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_got16_reloc, /* special_function */ + "R_MIPS16_GOT16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ - /* A placeholder for MIPS16 16 bit call through global offset table. */ - EMPTY_HOWTO (R_MIPS16_CALL16), + /* A MIPS16 call through the global offset table. */ + HOWTO (R_MIPS16_CALL16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_CALL16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ /* MIPS16 high 16 bits of symbol value. */ HOWTO (R_MIPS16_HI16, /* type */ @@ -1224,6 +1248,8 @@ static const struct elf_reloc_map mips16_reloc_map[] = { { BFD_RELOC_MIPS16_JMP, R_MIPS16_26 - R_MIPS16_min }, { BFD_RELOC_MIPS16_GPREL, R_MIPS16_GPREL - R_MIPS16_min }, + { BFD_RELOC_MIPS16_GOT16, R_MIPS16_GOT16 - R_MIPS16_min }, + { BFD_RELOC_MIPS16_CALL16, R_MIPS16_CALL16 - R_MIPS16_min }, { BFD_RELOC_MIPS16_HI16_S, R_MIPS16_HI16 - R_MIPS16_min }, { BFD_RELOC_MIPS16_LO16, R_MIPS16_LO16 - R_MIPS16_min }, }; |