Re: [patch,avr][Ping #3] PR81075: Move jump-tables out of .text

2017-07-07 Thread Denis Chertykov
I'm sorry for so long delay.

Please apply the patch.

2017-07-05 14:19 GMT+04:00 Georg-Johann Lay :
> Ping #3
>
> http://gcc.gnu.org/ml/gcc-patches/2017-06/msg01029.html
>
> As avr maintainers are off-line, would a global maintainer have
> a look at this?
>
> Thanks,
>
> Johann
>
>
>
>
> On 27.06.2017 12:01, Georg-Johann Lay wrote:
>>
>> Ping #2
>>
>> http://gcc.gnu.org/ml/gcc-patches/2017-06/msg01029.html
>>
>> On 14.06.2017 14:03, Georg-Johann Lay wrote:
>>>
>>> Hi,
>>>
>>> Since PR71151 we have jump-tables in .text so that branches
>>> crossing the tables have longer offsets that needed.
>>>
>>> This moves jump-tables out of test again, but not into
>>> .progmem.gcc_sw_tables like before PR71151, but into
>>> the currently unused but existing .jumptables.
>>>
>>> Since PR63223 there is no restriction on the location
>>> of jump-tables, they can even reside above 128KiB without
>>> problems.
>>>
>>> Also adds -mlog=insn_addresses to dump insn addresses
>>> as asm comments before respective instruction.
>>>
>>> The patch implements ASM_OUTPUT_ADDR_VEC so that avr.c
>>> gains full control over the table generation.
>>>
>>> Tested on ATmega2560.
>>>
>>> Ok to apply?
>>>
>>> Johann
>>>
>>>
>>> gcc/
>>>  Move jump-tables out of .text again.
>>>
>>>  PR target/81075
>>>  * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
>>>  (ASM_OUTPUT_ADDR_VEC): New function.
>>>  (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
>>>  (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
>>>  INSN_ADDRESSes as asm comment.
>>>  * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
>>>  (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
>>>  (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
>>>  * config/avr/avr.md (*tablejump): Adjust comment.
>>>  * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
>>>  * config/avr/avr-log.c (avr_log_set_avr_log) :
>>>  New detail.
>>>  * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
>>>  (avr_output_addr_vec): New proto.
>>>  (avr_log_t) : New field.
>>
>>
>>
>


Re: [patch,avr][Ping #3] PR81075: Move jump-tables out of .text

2017-07-05 Thread Georg-Johann Lay

Ping #3

http://gcc.gnu.org/ml/gcc-patches/2017-06/msg01029.html

As avr maintainers are off-line, would a global maintainer have
a look at this?

Thanks,

Johann



On 27.06.2017 12:01, Georg-Johann Lay wrote:

Ping #2

http://gcc.gnu.org/ml/gcc-patches/2017-06/msg01029.html

On 14.06.2017 14:03, Georg-Johann Lay wrote:

Hi,

Since PR71151 we have jump-tables in .text so that branches
crossing the tables have longer offsets that needed.

This moves jump-tables out of test again, but not into
.progmem.gcc_sw_tables like before PR71151, but into
the currently unused but existing .jumptables.

Since PR63223 there is no restriction on the location
of jump-tables, they can even reside above 128KiB without
problems.

Also adds -mlog=insn_addresses to dump insn addresses
as asm comments before respective instruction.

The patch implements ASM_OUTPUT_ADDR_VEC so that avr.c
gains full control over the table generation.

Tested on ATmega2560.

Ok to apply?

Johann


gcc/
 Move jump-tables out of .text again.

 PR target/81075
 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
 (ASM_OUTPUT_ADDR_VEC): New function.
 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
 INSN_ADDRESSes as asm comment.
 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
 * config/avr/avr.md (*tablejump): Adjust comment.
 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
 * config/avr/avr-log.c (avr_log_set_avr_log) :
 New detail.
 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
 (avr_output_addr_vec): New proto.
 (avr_log_t) : New field.