target-ppc: gdbstub: fix float registers for little-endian guests

Let's reuse the ppc_maybe_bswap_register() helper, like we already do
with the general registers.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Greg Kurz 2016-01-15 16:00:25 +01:00 committed by David Gibson
parent 376dbce0e3
commit 385abeb3e3

View File

@ -8754,10 +8754,12 @@ static int gdb_get_float_reg(CPUPPCState *env, uint8_t *mem_buf, int n)
{ {
if (n < 32) { if (n < 32) {
stfq_p(mem_buf, env->fpr[n]); stfq_p(mem_buf, env->fpr[n]);
ppc_maybe_bswap_register(env, mem_buf, 8);
return 8; return 8;
} }
if (n == 32) { if (n == 32) {
stl_p(mem_buf, env->fpscr); stl_p(mem_buf, env->fpscr);
ppc_maybe_bswap_register(env, mem_buf, 4);
return 4; return 4;
} }
return 0; return 0;
@ -8766,10 +8768,12 @@ static int gdb_get_float_reg(CPUPPCState *env, uint8_t *mem_buf, int n)
static int gdb_set_float_reg(CPUPPCState *env, uint8_t *mem_buf, int n) static int gdb_set_float_reg(CPUPPCState *env, uint8_t *mem_buf, int n)
{ {
if (n < 32) { if (n < 32) {
ppc_maybe_bswap_register(env, mem_buf, 8);
env->fpr[n] = ldfq_p(mem_buf); env->fpr[n] = ldfq_p(mem_buf);
return 8; return 8;
} }
if (n == 32) { if (n == 32) {
ppc_maybe_bswap_register(env, mem_buf, 4);
helper_store_fpscr(env, ldl_p(mem_buf), 0xffffffff); helper_store_fpscr(env, ldl_p(mem_buf), 0xffffffff);
return 4; return 4;
} }