Ping #1 http://gcc.gnu.org/ml/gcc-patches/2017-06/msg01029.html
Georg-Johann Lay schrieb:
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) <insn_addresses>: New detail. * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto. (avr_output_addr_vec): New proto. (avr_log_t) <insn_addresses>: New field.