From: Alex Bennée Date: Tue, 19 Apr 2022 09:10:19 +0000 (+0100) Subject: target/i386: fix byte swap issue with XMM register access X-Git-Tag: v7.1.0-rc0~145^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e618e1f9b4cbb3803bbe70fae30a0fa4960f384d;p=thirdparty%2Fqemu.git target/i386: fix byte swap issue with XMM register access During the conversion to the gdb_get_reg128 helpers the high and low parts of the XMM register where inadvertently swapped. This causes reads of the register to report the incorrect value to gdb. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/971 Fixes: b7b8756a9c (target/i386: use gdb_get_reg helpers) Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Cc: qemu-stable@nongnu.org Message-Id: <20220419091020.3008144-25-alex.bennee@linaro.org> --- diff --git a/target/i386/gdbstub.c b/target/i386/gdbstub.c index 098a2ad15a9..c3a2cf6f282 100644 --- a/target/i386/gdbstub.c +++ b/target/i386/gdbstub.c @@ -129,8 +129,8 @@ int x86_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) n -= IDX_XMM_REGS; if (n < CPU_NB_REGS32 || TARGET_LONG_BITS == 64) { return gdb_get_reg128(mem_buf, - env->xmm_regs[n].ZMM_Q(0), - env->xmm_regs[n].ZMM_Q(1)); + env->xmm_regs[n].ZMM_Q(1), + env->xmm_regs[n].ZMM_Q(0)); } } else { switch (n) {