+/* We need to handle lo(), hi(), etc etc in .hword, .word, etc
+ directives, so we have to parse "cons" expressions ourselves. */
+#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) parse_cons_expression_v850 (EXP)
+extern bfd_reloc_code_real_type parse_cons_expression_v850 (expressionS *);
+
+#define TC_CONS_FIX_NEW cons_fix_new_v850
+extern void cons_fix_new_v850 (fragS *, int, int, expressionS *,
+ bfd_reloc_code_real_type);
+
+#define TC_GENERIC_RELAX_TABLE md_relax_table
+extern const struct relax_type md_relax_table[];
+
+/* When relaxing, we need to generate
+ relocations for alignment directives. */
+#define HANDLE_ALIGN(frag) v850_handle_align (frag)
+extern void v850_handle_align (fragS *);
+
+/* We need space in a frag's fixed size to allow for alignment when relaxing. */
+#define TC_FX_SIZE_SLACK(FIX) 2
+
+#define MD_PCREL_FROM_SECTION(FIX, SEC) v850_pcrel_from_section (FIX, SEC)
+extern long v850_pcrel_from_section (struct fix *, asection *);
+
+#define DWARF2_LINE_MIN_INSN_LENGTH 2
+
+/* We need to record the operand involved when a pseudo-reloc is
+ processed so that the resulting value can be inserted correctly. */
+#define TC_FIX_TYPE void *
+#define TC_INIT_FIX_DATA(fixP) (fixP)->tc_fix_data = NULL
+
+#define md_end v850_md_end
+extern void v850_md_end (void);