summaryrefslogtreecommitdiff
path: root/tcg/i386
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-05-11 14:41:38 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-05-11 14:41:38 +0100
commit6d7cde809d915e14728eda0af1c0618eb5710a96 (patch)
tree819f8fbe3db445ef16e174bb7db0eec82f104586 /tcg/i386
parent5cbc61110738accb16ff8ed1f08a32906d02790f (diff)
parentabebf92597186be2bc48d487235da28b1127860f (diff)
downloadqemu-6d7cde809d915e14728eda0af1c0618eb5710a96.tar.gz
Merge remote-tracking branch 'remotes/rth/tags/tcg-next-pull-request' into staging
Queued TCG patches # gpg: Signature made Wed 09 May 2018 16:46:21 BST # gpg: using RSA key 64DF38E8AF7E215F # gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" # Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F * remotes/rth/tags/tcg-next-pull-request: tcg: Limit the number of ops in a TB tcg/i386: Fix dup_vec in non-AVX2 codepath Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tcg/i386')
-rw-r--r--tcg/i386/tcg-target.inc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c
index d7e59e79c5..5357909fff 100644
--- a/tcg/i386/tcg-target.inc.c
+++ b/tcg/i386/tcg-target.inc.c
@@ -854,11 +854,11 @@ static void tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,
switch (vece) {
case MO_8:
/* ??? With zero in a register, use PSHUFB. */
- tcg_out_vex_modrm(s, OPC_PUNPCKLBW, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLBW, r, a, a);
a = r;
/* FALLTHRU */
case MO_16:
- tcg_out_vex_modrm(s, OPC_PUNPCKLWD, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLWD, r, a, a);
a = r;
/* FALLTHRU */
case MO_32:
@@ -867,7 +867,7 @@ static void tcg_out_dup_vec(TCGContext *s, TCGType type, unsigned vece,
tcg_out8(s, 0);
break;
case MO_64:
- tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, 0, a);
+ tcg_out_vex_modrm(s, OPC_PUNPCKLQDQ, r, a, a);
break;
default:
g_assert_not_reached();