]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
tcg/i386: Mark xmm registers call-clobbered
authorRichard Henderson <richard.henderson@linaro.org>
Sun, 22 Jul 2018 22:28:02 +0000 (15:28 -0700)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Mon, 23 Jul 2018 19:24:17 +0000 (14:24 -0500)
When host vector registers and operations were introduced, I failed
to mark the registers call clobbered as required by the ABI.

Fixes: 770c2fc7bb7
Cc: qemu-stable@nongnu.org
Reported-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
(cherry picked from commit 672189cd586ea38a2c1d8ab91eb1f9dcff5ceb05)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
tcg/i386/tcg-target.inc.c

index ccde8801a5896eadffad0a6838a9d5fc4daf7c61..5727999bb300b84e536f0ee6194173c2a5576938 100644 (file)
@@ -3529,7 +3529,7 @@ static void tcg_target_init(TCGContext *s)
         tcg_target_available_regs[TCG_TYPE_V256] = ALL_VECTOR_REGS;
     }
 
-    tcg_target_call_clobber_regs = 0;
+    tcg_target_call_clobber_regs = ALL_VECTOR_REGS;
     tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_EAX);
     tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_EDX);
     tcg_regset_set_reg(tcg_target_call_clobber_regs, TCG_REG_ECX);