[PATCH v2] Add "--trampolines" option to allow assembler to relax out-of-range jumps
Max Filippov
jcmvbkbc@gmail.com
Thu Mar 20 12:07:00 GMT 2014
Hi Sterling,
On Fri, Mar 14, 2014 at 12:05 AM, Max Filippov <jcmvbkbc@gmail.com> wrote:
> 2014-02-28 David Weatherford <weath@cadence.com>
> Max Filippov <jcmvbkbc@gmail.com>
>
> gas/config/
> * 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.
>
> gas/doc/
> * as.texinfo: Document --[no-]trampolines command-line options.
> * c-xtensa.texi: Document trampolines relaxation and command line
> options.
>
> gas/
> * 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.
>
> gas/testsuite/gas/xtensa/
> * all.exp: Add test for trampoline relaxation.
> * trampoline.d: Trampoline relaxation expected dump.
> * trampoline.s: Trampoline relaxation test source.
> ---
> Changes v1 -> v2:
> - spell out all abbreviations of 'trampoline';
> - fix structure definition style for struct trampoline_frag, trampoline_seg;
> - add blank line in blocks after local variable declarations;
> - combine changelog entries with similar changes.
Is there anything else that needs to be done for this patch to be committed?
--
Thanks.
-- Max
More information about the Binutils
mailing list