aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongbok Kim <yongbok.kim@mips.com>2018-06-20 13:06:18 +0100
committerAleksandar Markovic <amarkovic@wavecomp.com>2018-06-27 20:13:50 +0200
commit8e0b373f8aa4b9feec7b44029455587e2e3d2b0f (patch)
treea0dd4b74251580a1130b3e401177919e788cb5c4
parent72e1f16f18fe62504f8f25d7a3f6813b24b221be (diff)
downloadqemu-8e0b373f8aa4b9feec7b44029455587e2e3d2b0f.zip
qemu-8e0b373f8aa4b9feec7b44029455587e2e3d2b0f.tar.gz
qemu-8e0b373f8aa4b9feec7b44029455587e2e3d2b0f.tar.bz2
target/mips: Fix gdbstub to read/write 64 bit FP registers
Fix gdbstub to read/write 64 bit FP registers Signed-off-by: Yongbok Kim <yongbok.kim@mips.com> Reviewed-by: Aleksandar Markovic <aleksandar.markovic@mips.com> Signed-off-by: Aleksandar Markovic <aleksandar.markovic@mips.com>
-rw-r--r--target/mips/gdbstub.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/target/mips/gdbstub.c b/target/mips/gdbstub.c
index 6d1fb70..18e0e6d 100644
--- a/target/mips/gdbstub.c
+++ b/target/mips/gdbstub.c
@@ -39,7 +39,7 @@ int mips_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
return gdb_get_regl(mem_buf, (int32_t)env->active_fpu.fcr0);
default:
if (env->CP0_Status & (1 << CP0St_FR)) {
- return gdb_get_regl(mem_buf,
+ return gdb_get_reg64(mem_buf,
env->active_fpu.fpr[n - 38].d);
} else {
return gdb_get_regl(mem_buf,
@@ -100,6 +100,7 @@ int mips_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
break;
default:
if (env->CP0_Status & (1 << CP0St_FR)) {
+ uint64_t tmp = ldq_p(mem_buf);
env->active_fpu.fpr[n - 38].d = tmp;
} else {
env->active_fpu.fpr[n - 38].w[FP_ENDIAN_IDX] = tmp;