diff options
author | Dragan Mladjenovic <draganm@gcc.gnu.org> | 2019-11-19 18:14:32 +0000 |
---|---|---|
committer | Dragan Mladjenovic <draganm@gcc.gnu.org> | 2019-11-19 18:14:32 +0000 |
commit | 4aa5fd8aca1140adf0917dc53397efddc7fd4c11 (patch) | |
tree | 1702499848761bf8961de779a0e6c7d4c2ca3596 /gcc/config/x-darwin | |
parent | aa5355781fd8746cb2ac8f0e456f8ac6dc4bf9c5 (diff) | |
download | gcc-4aa5fd8aca1140adf0917dc53397efddc7fd4c11.zip gcc-4aa5fd8aca1140adf0917dc53397efddc7fd4c11.tar.gz gcc-4aa5fd8aca1140adf0917dc53397efddc7fd4c11.tar.bz2 |
[MIPS] Prevent MSA branches from being put into delay slots
This patch tightens the instruction definitions to make sure
that MSA branch instructions cannot be put into delay slots and have their
delay slots eligible for being filled. Also, MSA *div*3 patterns use MSA
branches for zero checks but are not marked as being multi instruction and
thus could be put into delay slots. This patch fixes that.
gcc/ChangeLog:
2019-11-19 Zoran Jovanovic <zoran.jovanovic@mips.com>
Dragan Mladjenovic <dmladjenovic@wavecomp.com>
* config/mips/mips-msa.md (msa_<msabr>_<msafmt_f>, msa_<msabr>_v_<msafmt_f>):
Mark as not having "likely" version.
* config/mips/mips.md (insn_count): The simd_div instruction with
TARGET_CHECK_ZERO_DIV consists of 3 instructions.
(can_delay): Exclude simd_branch.
(defile_delay *): Add simd_branch instructions.
They have one regular delay slot.
gcc/testsuite/ChangeLog:
2019-11-19 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
* gcc.target/mips/msa-ds.c: New test.
From-SVN: r278458
Diffstat (limited to 'gcc/config/x-darwin')
0 files changed, 0 insertions, 0 deletions