Message ID | 20220412085426.148191-1-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [RFC] target/i386: fix byte swap issue with XMM register access | expand |
On 4/12/22 01:54, Alex Bennée wrote: > 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 <alex.bennee@linaro.org> > Cc: qemu-stable@nongnu.org > --- > target/i386/gdbstub.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~ > > diff --git a/target/i386/gdbstub.c b/target/i386/gdbstub.c > index 098a2ad15a..c3a2cf6f28 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) {
diff --git a/target/i386/gdbstub.c b/target/i386/gdbstub.c index 098a2ad15a..c3a2cf6f28 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) {
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 <alex.bennee@linaro.org> Cc: qemu-stable@nongnu.org --- target/i386/gdbstub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)