Emit "#" instead of calling gcc_unreachable for invalid insns.

Implement standard approach by emitting "#" for insns that have to be split.

	* config/i386/i386.md (*pushtf): Emit "#" instead of
	calling gcc_unreachable in insn output.
	(*pushxf): Ditto.
	(*pushdf): Ditto.
	(*pushsf_rex64): Ditto for alternatives other than 1.
	(*pushsf): Ditto for alternatives other than 1.
This commit is contained in:
Uros Bizjak 2020-02-06 17:34:21 +01:00
parent c940105cc1
commit ad84548336
2 changed files with 16 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*pushtf): Emit "#" instead of
calling gcc_unreachable in insn output.
(*pushxf): Ditto.
(*pushdf): Ditto.
(*pushsf_rex64): Ditto for alternatives other than 1.
(*pushsf): Ditto for alternatives other than 1.
2020-02-06 Martin Liska <mliska@suse.cz>
PR gcov-profile/91971

View File

@ -3032,7 +3032,7 @@
"TARGET_64BIT || TARGET_SSE"
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
return ("#");
}
[(set_attr "isa" "*,x64")
(set_attr "type" "multi")
@ -3087,7 +3087,7 @@
""
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
return ("#");
}
[(set_attr "isa" "*,*,*,nox64,x64")
(set_attr "type" "multi")
@ -3123,7 +3123,7 @@
""
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
return ("#");
}
[(set_attr "isa" "*,nox64,nox64,nox64,x64,sse2")
(set_attr "type" "multi")
@ -3156,7 +3156,8 @@
"TARGET_64BIT"
{
/* Anything else should be already split before reg-stack. */
gcc_assert (which_alternative == 1);
if (which_alternative != 1)
return ("#");
return "push{q}\t%q1";
}
[(set_attr "type" "multi,push,multi")
@ -3169,7 +3170,8 @@
"!TARGET_64BIT"
{
/* Anything else should be already split before reg-stack. */
gcc_assert (which_alternative == 1);
if (which_alternative != 1)
return ("#");
return "push{l}\t%1";
}
[(set_attr "type" "multi,push,multi")