On Thu, Feb 06, 2020 at 05:36:43PM +0100, Uros Bizjak wrote:
> 2020-02-06  Uroš Bizjak  <ubiz...@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.
> 
> Committed to mainline.
> 
> Uros.

> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
> index 496a8666643..34649c010b8 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 ("#");

No need for those ()s around, just return "#"; would do.

> @@ -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";

Shouldn't this be then
  "@
   #
   push{q}\t%q1
   #"
instead then?

> @@ -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")

Likewise.

        Jakub

Reply via email to