summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason A. Donenfeld <zx2c4@gentoo.org>2018-07-23 14:34:41 +0200
committerJason A. Donenfeld <zx2c4@gentoo.org>2018-07-23 17:06:00 +0200
commitfd6a9690eddc378b1c85996206f33396a6aefff2 (patch)
treeb31980851fb4c25c1cc05950e5c586973a08e2f6 /app-emulation/qemu/files
parentpackage.mask: Adjusted filezilla mask. (diff)
downloadgentoo-fd6a9690eddc378b1c85996206f33396a6aefff2.tar.gz
gentoo-fd6a9690eddc378b1c85996206f33396a6aefff2.tar.bz2
gentoo-fd6a9690eddc378b1c85996206f33396a6aefff2.zip
app-emulation/qemu: fix aarch64 tcg simd crash
QEMU mailing list thread is here: https://marc.info/?l=qemu-devel&m=153229252602494&w=2 The patch is here: https://marc.info/?l=qemu-devel&m=153230940005574&w=2 Package-Manager: Portage-2.3.43, Repoman-2.3.10
Diffstat (limited to 'app-emulation/qemu/files')
-rw-r--r--app-emulation/qemu/files/qemu-2.12.0-aarch64-simd-fix.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/app-emulation/qemu/files/qemu-2.12.0-aarch64-simd-fix.patch b/app-emulation/qemu/files/qemu-2.12.0-aarch64-simd-fix.patch
new file mode 100644
index 000000000000..c8b8a02354cc
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-2.12.0-aarch64-simd-fix.patch
@@ -0,0 +1,36 @@
+From: Richard Henderson <richard.henderson@linaro.org>
+To: qemu-devel@nongnu.org
+Cc: Jason@zx2c4.com,
+ qemu-stable@nongnu.org
+Subject: [PATCH for-3.0] tcg/i386: Mark xmm registers call-clobbered
+Date: Sun, 22 Jul 2018 18:29:41 -0700
+Message-Id: <20180723012941.16920-1-richard.henderson@linaro.org>
+X-Mailer: git-send-email 2.17.1
+
+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>
+---
+ tcg/i386/tcg-target.inc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c
+index e87b0d445e..a91e4f1313 100644
+--- a/tcg/i386/tcg-target.inc.c
++++ b/tcg/i386/tcg-target.inc.c
+@@ -3532,7 +3532,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);
+--
+2.17.1
+