diff options
author | David Weatherford <weath@cadence.com> | 2014-03-21 11:53:42 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-03-21 11:53:42 +0000 |
commit | a82c7d9030b67a6a76a5403d0e1641f9e42141ac (patch) | |
tree | 4838e1619e2b50dd25dc47c6dcc0ccf1edf5a45e /gas/frags.h | |
parent | b65dc60b233704405c334bbe16c4fc5689187b7b (diff) | |
download | gdb-a82c7d9030b67a6a76a5403d0e1641f9e42141ac.zip gdb-a82c7d9030b67a6a76a5403d0e1641f9e42141ac.tar.gz gdb-a82c7d9030b67a6a76a5403d0e1641f9e42141ac.tar.bz2 |
Add support to the Xtensa target for creating trampolines for out-of-range branches.
* tc-xtensa.c (xtensa_check_frag_count, xtensa_create_trampoline_frag)
(xtensa_maybe_create_trampoline_frag, init_trampoline_frag)
(find_trampoline_seg, search_trampolines, get_best_trampoline)
(check_and_update_trampolines, add_jump_to_trampoline)
(dump_trampolines): New function.
(md_parse_option): Add cases for --[no-]trampolines options.
(md_assemble, finish_vinsn, xtensa_end): Add call to
xtensa_check_frag_count.
(xg_assemble_vliw_tokens): Add call to
xtensa_maybe_create_trampoline_frag.
(xtensa_relax_frag): Relax fragments with RELAX_TRAMPOLINE state.
(relax_frag_immed): Relax jump instructions that cannot reach its
target.
* tc-xtensa.h (xtensa_relax_statesE::RELAX_TRAMPOLINE): New relax
state.
* as.texinfo: Document --[no-]trampolines command-line options.
* c-xtensa.texi: Document trampolines relaxation and command line
options.
* frags.c (get_frag_count, clear_frag_count): New function.
(frag_alloc): Increment totalfrags counter.
* frags.h (get_frag_count, clear_frag_count): New function.
* all.exp: Add test for trampoline relaxation.
* trampoline.d: Trampoline relaxation expected dump.
* trampoline.s: Trampoline relaxation test source.
Diffstat (limited to 'gas/frags.h')
-rw-r--r-- | gas/frags.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gas/frags.h b/gas/frags.h index 319898f..2f9e1b5 100644 --- a/gas/frags.h +++ b/gas/frags.h @@ -155,4 +155,7 @@ char *frag_var (relax_stateT type, bfd_boolean frag_offset_fixed_p (const fragS *, const fragS *, offsetT *); +int get_frag_count (void); +void clear_frag_count (void); + #endif /* FRAGS_H */ |