From 2cf6f31527c6d8dd2cc96f4efe8ff70d60d5fb44 Mon Sep 17 00:00:00 2001
From: Uros Bizjak <ubizjak@gmail.com>
Date: Wed, 20 May 2020 18:57:32 +0200
Subject: [PATCH] i386: Fix *pushsi2_rex64 constraints [PR95238]
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

2020-05-20  Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:
	PR target/95238
	* config/i386/i386.md (*pushsi2_rex64):
	Use "e" constraint instead of "i".
---
 gcc/ChangeLog           | 6 ++++++
 gcc/config/i386/i386.md | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5dd558ae8a3a..3348424ba4c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-20  Uroš Bizjak  <ubizjak@gmail.com>
+
+	PR target/95238
+	* config/i386/i386.md (*pushsi2_rex64):
+	Use "e" constraint instead of "i".
+
 2020-05-20  Jan Hubicka  <hubicka@ucw.cz>
 
 	* lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index aa4f25b7065c..29c2b4795f0c 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1750,7 +1750,7 @@
 ;; For TARGET_64BIT we always round up to 8 bytes.
 (define_insn "*pushsi2_rex64"
   [(set (match_operand:SI 0 "push_operand" "=X,X")
-	(match_operand:SI 1 "nonmemory_no_elim_operand" "ri,*v"))]
+	(match_operand:SI 1 "nonmemory_no_elim_operand" "re,*v"))]
   "TARGET_64BIT"
   "@
    push{q}\t%q1
-- 
GitLab