This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH v2] Add "--trampolines" option to allow assembler to relax out-of-range jumps
- From: Max Filippov <jcmvbkbc at gmail dot com>
- To: binutils at sourceware dot org
- Cc: Sterling Augustine <augustine dot sterling at gmail dot com>, David Weatherford <weath at cadence dot com>, Marc Gauthier <marc at cadence dot com>, Max Filippov <jcmvbkbc at gmail dot com>
- Date: Thu, 20 Mar 2014 16:07:08 +0400
- Subject: Re: [PATCH v2] Add "--trampolines" option to allow assembler to relax out-of-range jumps
- Authentication-results: sourceware.org; auth=none
- References: <1394741157-5359-1-git-send-email-jcmvbkbc at gmail dot com>
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