[PATCH v2] gas: use literals/const16 for xtensa loop relaxation

Max Filippov jcmvbkbc@gmail.com
Wed Apr 3 17:26:00 GMT 2019


On Wed, Apr 3, 2019 at 9:23 AM augustine.sterling@gmail.com
<augustine.sterling@gmail.com> wrote:
> On Tue, Apr 2, 2019 at 6:49 PM Max Filippov <jcmvbkbc@gmail.com> wrote:
> > Loop opcode relaxation that uses addi/addmi doesn't work well with other
> > relaxations that may cause code movement. Instead of encoding fixed loop
> > end offset in the relaxed sequence use l32r or a pair of const16 to load
> > loop end address. This way the address of the loop end gets a relocation
> > record and it gets updated appropriately.
> >
> > gas/
> > 2019-04-02  Max Filippov  <jcmvbkbc@gmail.com>
> >
> >         * config/tc-xtensa.c (convert_frag_immed): Drop
> >         convert_frag_immed_finish_loop invocation.
> >         (convert_frag_immed_finish_loop): Drop declaration and
> >         definition.
> >         * config/xtensa-relax.c (widen_spec_list): Replace loop
> >         widening that uses addi/addmi with widening that uses l32r
> >         and const16.
>
>
> This is OK.

Applied to master. Thanks!

-- Max



More information about the Binutils mailing list