[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/7] target-ppc: gdbstub: fix spe registers for litt
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PATCH 6/7] target-ppc: gdbstub: fix spe registers for little-endian guests |
Date: |
Fri, 18 Dec 2015 11:19:14 +0100 |
User-agent: |
StGit/0.17.1-dirty |
Let's reuse the ppc_maybe_bswap_register() helper, like we already do
with the general registers.
Signed-off-by: Greg Kurz <address@hidden>
---
target-ppc/translate_init.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 80d53e4dcf5a..5ea168c19eae 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -8849,6 +8849,7 @@ static int gdb_get_spe_reg(CPUPPCState *env, uint8_t
*mem_buf, int n)
if (n < 32) {
#if defined(TARGET_PPC64)
stl_p(mem_buf, env->gpr[n] >> 32);
+ ppc_maybe_bswap_register(env, mem_buf, 4);
#else
stl_p(mem_buf, env->gprh[n]);
#endif
@@ -8856,10 +8857,12 @@ static int gdb_get_spe_reg(CPUPPCState *env, uint8_t
*mem_buf, int n)
}
if (n == 32) {
stq_p(mem_buf, env->spe_acc);
+ ppc_maybe_bswap_register(env, mem_buf, 8);
return 8;
}
if (n == 33) {
stl_p(mem_buf, env->spe_fscr);
+ ppc_maybe_bswap_register(env, mem_buf, 4);
return 4;
}
return 0;
@@ -8870,7 +8873,11 @@ static int gdb_set_spe_reg(CPUPPCState *env, uint8_t
*mem_buf, int n)
if (n < 32) {
#if defined(TARGET_PPC64)
target_ulong lo = (uint32_t)env->gpr[n];
- target_ulong hi = (target_ulong)ldl_p(mem_buf) << 32;
+ target_ulong hi;
+
+ ppc_maybe_bswap_register(env, mem_buf, 4);
+
+ hi = (target_ulong)ldl_p(mem_buf) << 32;
env->gpr[n] = lo | hi;
#else
env->gprh[n] = ldl_p(mem_buf);
@@ -8878,10 +8885,12 @@ static int gdb_set_spe_reg(CPUPPCState *env, uint8_t
*mem_buf, int n)
return 4;
}
if (n == 32) {
+ ppc_maybe_bswap_register(env, mem_buf, 8);
env->spe_acc = ldq_p(mem_buf);
return 8;
}
if (n == 33) {
+ ppc_maybe_bswap_register(env, mem_buf, 4);
env->spe_fscr = ldl_p(mem_buf);
return 4;
}
- [Qemu-devel] [PATCH 0/7] target-ppc: endian fixes for KVM and gdbstub, Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 1/7] target-ppc: kvm: fix floating point registers sync on little-endian hosts, Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 2/7] target-ppc: rename and export maybe_bswap_register(), Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 3/7] target-ppc: gdbstub: fix float registers for little-endian guests, Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 4/7] target-ppc: gdbstub: introduce avr_need_swap(), Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 5/7] target-ppc: gdbstub: fix altivec registers for little-endian guests, Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 7/7] target-ppc: gdbstub: Add VSX support, Greg Kurz, 2015/12/18
- [Qemu-devel] [PATCH 6/7] target-ppc: gdbstub: fix spe registers for little-endian guests,
Greg Kurz <=