+}
+
+static reloc_howto_type elf_d30v_howto_table[] =
+{
+ /* This reloc does nothing. */
+ HOWTO (R_D30V_NONE, /* Type. */
+ 0, /* Rightshift. */
+ 2, /* Size (0 = byte, 1 = short, 2 = long). */
+ 32, /* Bitsize. */
+ FALSE, /* PC_relative. */
+ 0, /* Bitpos. */
+ complain_overflow_bitfield, /* Complain_on_overflow. */
+ bfd_elf_generic_reloc, /* Special_function. */
+ "R_D30V_NONE", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0, /* Src_mask. */
+ 0, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_bitfield, /* Complain_on_overflow. */
+ bfd_elf_generic_reloc, /* Special_function. */
+ "R_D30V_6", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3f, /* Src_mask. */
+ 0x3f, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_9_PCREL", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3f, /* Src_mask. */
+ 0x3f, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_9_PCREL_R", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3f, /* Src_mask. */
+ 0x3f, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_generic_reloc, /* Special_function. */
+ "R_D30V_15", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xfff, /* Src_mask. */
+ 0xfff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_15_PCREL", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xfff, /* Src_mask. */
+ 0xfff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_15_PCREL_R", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xfff, /* Src_mask. */
+ 0xfff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_generic_reloc, /* Special_function. */
+ "R_D30V_21", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3ffff, /* Src_mask. */
+ 0x3ffff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_21_PCREL", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3ffff, /* Src_mask. */
+ 0x3ffff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc_21, /* Special_function. */
+ "R_D30V_21_PCREL_R", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0x3ffff, /* Src_mask. */
+ 0x3ffff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_bitfield, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc, /* Special_function. */
+ "R_D30V_32", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xffffffff, /* Src_mask. */
+ 0xffffffff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_signed, /* Complain_on_overflow. */
+ bfd_elf_d30v_reloc, /* Special_function. */
+ "R_D30V_32_PCREL", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xffffffff, /* Src_mask. */
+ 0xffffffff, /* Dst_mask. */
+ 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. */
+ 0, /* Bitpos. */
+ complain_overflow_bitfield, /* Complain_on_overflow. */
+ bfd_elf_generic_reloc, /* Special_function. */
+ "R_D30V_32_NORMAL", /* Name. */
+ FALSE, /* Partial_inplace. */
+ 0xffffffff, /* Src_mask. */
+ 0xffffffff, /* Dst_mask. */
+ FALSE), /* PCrel_offset. */
+
+};