aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2020-02-06 17:34:21 +0100
committerUros Bizjak <ubizjak@gmail.com>2020-02-06 17:34:21 +0100
commitad84548336ad9a08b451ddd7ea64f07aee0576a6 (patch)
tree5d07505fc5a01129734fed26f925c04c0f39c341 /gcc
parentc940105cc17111be98d8d42ba48a413b0e63aebe (diff)
downloadgcc-ad84548336ad9a08b451ddd7ea64f07aee0576a6.zip
gcc-ad84548336ad9a08b451ddd7ea64f07aee0576a6.tar.gz
gcc-ad84548336ad9a08b451ddd7ea64f07aee0576a6.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.md12
2 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc9c372..c842c4f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 496a866..34649c0 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -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")