This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/57583] large switches with jump tables are horribly broken on m68k
- From: "law at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 06 Jan 2017 21:21:34 +0000
- Subject: [Bug target/57583] large switches with jump tables are horribly broken on m68k
- Auto-submitted: auto-generated
- References: <bug-57583-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57583
--- Comment #15 from Jeffrey A. Law <law at gcc dot gnu.org> ---
Author: law
Date: Fri Jan 6 21:21:02 2017
New Revision: 244184
URL: https://gcc.gnu.org/viewcvs?rev=244184&root=gcc&view=rev
Log:
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.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/m68k/linux.h
trunk/gcc/config/m68k/m68k.h
trunk/gcc/config/m68k/m68k.md
trunk/gcc/config/m68k/m68k.opt
trunk/gcc/config/m68k/m68kelf.h
trunk/gcc/config/m68k/netbsd-elf.h
trunk/gcc/doc/invoke.texi