re PR target/57583 (large switches with jump tables are horribly broken on m68k)
authorMikael Pettersson <mikpelinux@gmail.com>
Fri, 6 Jan 2017 21:21:02 +0000 (21:21 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 6 Jan 2017 21:21:02 +0000 (14:21 -0700)
commitc24900be6b72261dff5eb8db097360b4c361c86e
tree12f0b63e0a1fa7277e22bbffda4163f666cabd23
parentb69195a0f48add25066ee99ef00597715d3c1fe7
re PR target/57583 (large switches with jump tables are horribly broken on m68k)

2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>

PR target/57583
* config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
TARGET_LONG_JUMP_TABLE_OFFSETS.
* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
(ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
* config/m68k/m68k.md (tablejump expander): Likewise.
(*tablejump_pcrel_hi): Renamed from unnamed insn, reject
TARGET_LONG_JUMP_TABLE_OFFSETS.
(*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
* doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.

From-SVN: r244184
gcc/ChangeLog
gcc/config/m68k/linux.h
gcc/config/m68k/m68k.h
gcc/config/m68k/m68k.md
gcc/config/m68k/m68k.opt
gcc/config/m68k/m68kelf.h
gcc/config/m68k/netbsd-elf.h
gcc/doc/invoke.texi