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:
parent
376dbce0e3
commit
385abeb3e3
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user