+static reloc_howto_type *
+coff_z8k_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ bfd_reloc_code_real_type code)
+{
+ switch (code)
+ {
+ case BFD_RELOC_8: return & r_imm8;
+ case BFD_RELOC_16: return & r_da;
+ case BFD_RELOC_32: return & r_imm32;
+ case BFD_RELOC_8_PCREL: return & r_jr;
+ case BFD_RELOC_16_PCREL: return & r_rel16;
+ case BFD_RELOC_Z8K_DISP7: return & r_disp7;
+ case BFD_RELOC_Z8K_CALLR: return & r_callr;
+ case BFD_RELOC_Z8K_IMM4L: return & r_imm4l;
+ default: BFD_FAIL ();
+ return 0;
+ }
+}
+
+static reloc_howto_type *
+coff_z8k_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
+ const char *r_name)
+{
+ if (strcasecmp (r_imm8.name, r_name) == 0)
+ return &r_imm8;
+ if (strcasecmp (r_da.name, r_name) == 0)
+ return &r_da;
+ if (strcasecmp (r_imm32.name, r_name) == 0)
+ return &r_imm32;
+ if (strcasecmp (r_jr.name, r_name) == 0)
+ return &r_jr;
+ if (strcasecmp (r_rel16.name, r_name) == 0)
+ return &r_rel16;
+ if (strcasecmp (r_disp7.name, r_name) == 0)
+ return &r_disp7;
+ if (strcasecmp (r_callr.name, r_name) == 0)
+ return &r_callr;
+ if (strcasecmp (r_imm4l.name, r_name) == 0)
+ return &r_imm4l;
+
+ return NULL;
+}
+