summaryrefslogtreecommitdiff
path: root/gas/config/tc-m68hc11.h
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2002-08-13 22:20:50 +0000
committerStephane Carrez <stcarrez@nerim.fr>2002-08-13 22:20:50 +0000
commitc9b36d4ee1c732ffdfc1bd2b691deba30c46885a (patch)
treeeae09c7b36815d31244fa33b552136cd4ce37134 /gas/config/tc-m68hc11.h
parent51e39d40f80a702f223bafdd4a2ec7df64e59fb0 (diff)
downloadbinutils-redhat-c9b36d4ee1c732ffdfc1bd2b691deba30c46885a.tar.gz
* config/tc-m68hc11.h (MD_PCREL_FROM_SECTION): Remove.
(TC_HANDLES_FX_DONE): Define to let md_apply_fix3 set fx_done flag according to the reloc. (tc_fix_adjustable, tc_m68hc11_fix_adjustable): Define. (TC_FORCE_RELOCATION): Define. (tc_m68hc11_force_relocation): Declare. * config/tc-m68hc11.c (md_pseudo_table): Add relax command. (s_m68hc11_relax): New function for relax group. (build_insn, build_jump_insn): Emit a M68HC11_RL_JUMP reloc at beginning of jump instruction. (md_pcrel_from): Rename from md_pcrel_from_section and fix address computation. (tc-gen_reloc): Update. (md_estimate_size_before_relax): Create the BFD_RELOC_16_PCREL as PC-relative fixup. (tc_m68hc11_force_relocation): New function, handle new relocs. (tc_m68hc11_fix_adjustable): New to make sure there are enough reloc for the linker relax pass. (md_apply_fix3): Handle M68HC11_RL_JUMP, M68HC11_RL_GROUP and VTABLE relocs.
Diffstat (limited to 'gas/config/tc-m68hc11.h')
-rw-r--r--gas/config/tc-m68hc11.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/gas/config/tc-m68hc11.h b/gas/config/tc-m68hc11.h
index 418b7b5afd..e17df1ebaf 100644
--- a/gas/config/tc-m68hc11.h
+++ b/gas/config/tc-m68hc11.h
@@ -72,13 +72,11 @@ extern const char *m68hc11_arch_format PARAMS ((void));
#define LISTING_HEADER m68hc11_listing_header ()
extern const char *m68hc11_listing_header PARAMS ((void));
-/* call md_pcrel_from_section, not md_pcrel_from */
-#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC)
-extern long md_pcrel_from_section PARAMS ((struct fix *fixp, segT sec));
-
/* Permit temporary numeric labels. */
#define LOCAL_LABELS_FB 1
+#define TC_HANDLES_FX_DONE
+
#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */
#define tc_init_after_args m68hc11_init_after_args
@@ -99,6 +97,12 @@ extern int m68hc11_parse_long_option PARAMS ((char *));
#define TC_GENERIC_RELAX_TABLE md_relax_table
extern struct relax_type md_relax_table[];
+#define TC_FORCE_RELOCATION(fix) tc_m68hc11_force_relocation (fix)
+extern int tc_m68hc11_force_relocation PARAMS ((struct fix *));
+
+#define tc_fix_adjustable(X) tc_m68hc11_fix_adjustable(X)
+extern int tc_m68hc11_fix_adjustable PARAMS ((struct fix *));
+
#define md_operand(x)
#define tc_frob_label(sym) do {\
S_SET_VALUE (sym, (valueT) frag_now_fix ()); \