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

augustine.sterling@gmail.com augustine.sterling@gmail.com
Wed Apr 3 16:23:00 GMT 2019


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.



More information about the Binutils mailing list