[Bug target/57583] large switches with jump tables are horribly broken on m68k

law at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 6 21:21:00 GMT 2017


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


More information about the Gcc-bugs mailing list