]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/49606 (mips64: o64 Unrecognizable insn when one noreturn function callin...
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 5 Sep 2011 19:39:27 +0000 (19:39 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 5 Sep 2011 19:39:27 +0000 (19:39 +0000)
commit81a478c889889e61d8fb27626276a6da1d6c01a1
treed039e4100665e17742b2be46bda90e616e429283
parent1ab9ec7b7fa55245a78720a49e9284fd64d04536
re PR target/49606 (mips64: o64 Unrecognizable insn when one noreturn function calling another noreturn function)

gcc/
PR target/49606
* config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
(PMODE_INSN): New macro.
* config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
(mips_got_load, mips_expand_synci_loop): Likewise.
(mips_save_gp_to_cprestore_slot): Handle SImode and DImode
cprestore patterns.
(mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
copygp_mips16 patterns.
(mips_expand_prologue): Handle SImode and DImode potential_cprestore
and use_cprestore patterns.
(mips_override_options): Check for incompatible -mabi and -mlong
combinations.
* config/mips/mips.md (unspec_got<mode>): Rename to...
(unspec_got_<mode>): ...this.
(copygp_mips16): Use the Pmode iterator.
(potential_cprestore, cprestore, use_cprestore): Likewise.
(clear_cache, indirect_jump): Use PMODE_INSN.
(indirect_jump<mode>): Rename to...
(indirect_jump_<mode>): ...this.
(tablejump): Use PMODE_INSN.
(tablejump<mode>): Rename to...
(tablejump_<mode>): ...this.
(exception_receiver): Handle restore_gp_si and restore_gp_di.
(restore_gp): Use the Pmode iterator.
* config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
PMODE_INSN.

gcc/testsuite/
PR target/49606
* gcc.target/mips/abi-main.h: New file.
* gcc.target/mips/abi-o32-long32.c: New test.
* gcc.target/mips/abi-o32-long64.c: Likewise.
* gcc.target/mips/abi-o64-long32.c: Likewise.
* gcc.target/mips/abi-o64-long64.c: Likewise.
* gcc.target/mips/abi-n32-long32.c: Likewise.
* gcc.target/mips/abi-n32-long64.c: Likewise.
* gcc.target/mips/abi-n64-long32.c: Likewise.
* gcc.target/mips/abi-n64-long64.c: Likewise.
* gcc.target/mips/abi-o32-long32-no-shared.c: Likewise.
* gcc.target/mips/abi-o32-long64-no-shared.c: Likewise.
* gcc.target/mips/abi-o64-long32-no-shared.c: Likewise.
* gcc.target/mips/abi-o64-long64-no-shared.c: Likewise.
* gcc.target/mips/abi-n32-long32-no-shared.c: Likewise.
* gcc.target/mips/abi-n32-long64-no-shared.c: Likewise.
* gcc.target/mips/abi-n64-long32-no-shared.c: Likewise.
* gcc.target/mips/abi-n64-long64-no-shared.c: Likewise.
* gcc.target/mips/abi-o32-long32-pic.c: Likewise.
* gcc.target/mips/abi-o32-long64-pic.c: Likewise.
* gcc.target/mips/abi-o64-long32-pic.c: Likewise.
* gcc.target/mips/abi-o64-long64-pic.c: Likewise.
* gcc.target/mips/abi-n32-long32-pic.c: Likewise.
* gcc.target/mips/abi-n32-long64-pic.c: Likewise.
* gcc.target/mips/abi-n64-long32-pic.c: Likewise.
* gcc.target/mips/abi-n64-long64-pic.c: Likewise.
* gcc.target/mips/abi-eabi32-long32.c: Likewise.
* gcc.target/mips/abi-eabi32-long64.c: Likewise.
* gcc.target/mips/abi-eabi64-long32.c: Likewise.
* gcc.target/mips/abi-eabi64-long64.c: Likewise.
* gcc.target/mips/mips.exp: Make -mshared implied -mabicalls.
* gcc.target/mips/branch-2.c: Remove -mabicalls.
* gcc.target/mips/branch-3.c: Likewise.
* gcc.target/mips/branch-4.c: Likewise.
* gcc.target/mips/branch-5.c: Likewise.
* gcc.target/mips/branch-6.c: Likewise.
* gcc.target/mips/branch-7.c: Likewise.
* gcc.target/mips/branch-8.c: Likewise.
* gcc.target/mips/branch-9.c: Likewise.
* gcc.target/mips/branch-10.c: Likewise.
* gcc.target/mips/branch-11.c: Likewise.
* gcc.target/mips/branch-12.c: Likewise.
* gcc.target/mips/branch-13.c: Likewise.
* gcc.target/mips/lazy-binding-1.c: Likewise.

From-SVN: r178557
49 files changed:
gcc/ChangeLog
gcc/config/mips/mips-dsp.md
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/abi-eabi32-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-eabi32-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-eabi64-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-eabi64-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-main.h [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long32-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long32-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long64-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long64-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n32-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long32-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long32-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long64-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long64-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-n64-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long32-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long32-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long64-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long64-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o32-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long32-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long32-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long64-no-shared.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long64-pic.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/abi-o64-long64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/branch-10.c
gcc/testsuite/gcc.target/mips/branch-11.c
gcc/testsuite/gcc.target/mips/branch-12.c
gcc/testsuite/gcc.target/mips/branch-13.c
gcc/testsuite/gcc.target/mips/branch-2.c
gcc/testsuite/gcc.target/mips/branch-3.c
gcc/testsuite/gcc.target/mips/branch-4.c
gcc/testsuite/gcc.target/mips/branch-5.c
gcc/testsuite/gcc.target/mips/branch-6.c
gcc/testsuite/gcc.target/mips/branch-7.c
gcc/testsuite/gcc.target/mips/branch-8.c
gcc/testsuite/gcc.target/mips/branch-9.c
gcc/testsuite/gcc.target/mips/lazy-binding-1.c
gcc/testsuite/gcc.target/mips/mips.exp