aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2017-04-12 10:08:18 -0600
committerJeff Law <law@gcc.gnu.org>2017-04-12 10:08:18 -0600
commit988ed78513a850a6c7eb2b99af93d68668d4a0c7 (patch)
treea1aeecb0bbe46700f19e7f896729a5be83dc04c0 /gcc
parente1abef483ebc3638e5e130253da65213027decaf (diff)
downloadgcc-988ed78513a850a6c7eb2b99af93d68668d4a0c7.zip
gcc-988ed78513a850a6c7eb2b99af93d68668d4a0c7.tar.gz
gcc-988ed78513a850a6c7eb2b99af93d68668d4a0c7.tar.bz2
genattrtab.c (write_eligible_delay): Verify DELAY_INSN still has a delay slot in the generated code.
* genattrtab.c (write_eligible_delay): Verify DELAY_INSN still has a delay slot in the generated code. From-SVN: r246879
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/genattrtab.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fc0becf..89af9cc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2017-04-12 Jeff Law <law@redhat.com>
+ * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
+ has a delay slot in the generated code.
+
* config/cris/cris.md (cris_preferred_reload_class): Return
GENNONACR_REGS rather than GENERAL_REGS.
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index cd4e668..3629b5f 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -4416,6 +4416,9 @@ write_eligible_delay (FILE *outf, const char *kind)
fprintf (outf, "{\n");
fprintf (outf, " rtx_insn *insn ATTRIBUTE_UNUSED;\n");
fprintf (outf, "\n");
+ fprintf (outf, " if (num_delay_slots (delay_insn) == 0)\n");
+ fprintf (outf, " return 0;");
+ fprintf (outf, "\n");
fprintf (outf, " gcc_assert (slot < %d);\n", max_slots);
fprintf (outf, "\n");
/* Allow dbr_schedule to pass labels, etc. This can happen if try_split