diff options
author | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-13 22:20:50 +0000 |
---|---|---|
committer | Stephane Carrez <stcarrez@nerim.fr> | 2002-08-13 22:20:50 +0000 |
commit | e371935fea357fda4aff68fadadf3f7ecbb9672a (patch) | |
tree | 73b47ad5c538d41fc78c51effe249c6794fa1e37 /gas/config/tc-m68hc11.h | |
parent | 3c1499adb353ea2d7312cbd78e109dee250d2436 (diff) | |
download | gdb-e371935fea357fda4aff68fadadf3f7ecbb9672a.zip gdb-e371935fea357fda4aff68fadadf3f7ecbb9672a.tar.gz gdb-e371935fea357fda4aff68fadadf3f7ecbb9672a.tar.bz2 |
* 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.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gas/config/tc-m68hc11.h b/gas/config/tc-m68hc11.h index 418b7b5..e17df1e 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 ()); \ |