Commit 71e558ef by Jeff Law Committed by Jeff Law

[PATCH] Fix abort in write_eligible_delay

[PATCH] Fix abort in write_eligible_delay
        * genattrtab.c (main): If we do not have any annul-true or annul-false
        slots, then write out a dummy eligible_for_annul_true or
        eligible_for_annul_false as needed.

From-SVN: r229184
parent 8d535dab
2015-10-22 Jeff Law <law@redhat.com>
* genattrtab.c (main): If we do not have any annul-true or annul-false
slots, then write out a dummy eligible_for_annul_true or
eligible_for_annul_false as needed.
2015-10-22 Nick Clifton <nickc@redhat.com> 2015-10-22 Nick Clifton <nickc@redhat.com>
* config/msp430/msp430.opt: Add -msilicon-errata and * config/msp430/msp430.opt: Add -msilicon-errata and
...@@ -4411,6 +4411,26 @@ write_indent (FILE *outf, int indent) ...@@ -4411,6 +4411,26 @@ write_indent (FILE *outf, int indent)
fprintf (outf, " "); fprintf (outf, " ");
} }
/* If the target does not have annul-true or annul-false delay slots, this
function will create a dummy eligible_for function on OUTF which always
returns false. KIND will be annul_true or annul_false. */
static void
write_dummy_eligible_delay (FILE *outf, const char *kind)
{
/* Write function prelude. */
fprintf (outf, "int\n");
fprintf (outf, "eligible_for_%s (rtx_insn *delay_insn ATTRIBUTE_UNUSED,\n"
" int slot ATTRIBUTE_UNUSED,\n"
" rtx_insn *candidate_insn ATTRIBUTE_UNUSED,\n"
" int flags ATTRIBUTE_UNUSED)\n",
kind);
fprintf (outf, "{\n");
fprintf (outf, " return 0;\n");
fprintf (outf, "}\n\n");
}
/* Write a subroutine that is given an insn that requires a delay slot, a /* Write a subroutine that is given an insn that requires a delay slot, a
delay slot ordinal, and a candidate insn. It returns nonzero if the delay slot ordinal, and a candidate insn. It returns nonzero if the
candidate can be placed in the specified delay slot of the insn. candidate can be placed in the specified delay slot of the insn.
...@@ -5307,8 +5327,14 @@ main (int argc, char **argv) ...@@ -5307,8 +5327,14 @@ main (int argc, char **argv)
(The function to compute the number of delay slots will be written (The function to compute the number of delay slots will be written
below.) */ below.) */
write_eligible_delay (attr_file, "delay"); write_eligible_delay (attr_file, "delay");
write_eligible_delay (attr_file, "annul_true"); if (have_annul_true)
write_eligible_delay (attr_file, "annul_false"); write_eligible_delay (attr_file, "annul_true");
else
write_dummy_eligible_delay (attr_file, "annul_true");
if (have_annul_false)
write_eligible_delay (attr_file, "annul_false");
else
write_dummy_eligible_delay (attr_file, "annul_false");
/* Write out constant delay slot info. */ /* Write out constant delay slot info. */
write_const_num_delay_slots (attr_file); write_const_num_delay_slots (attr_file);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment