mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-22 01:21:53 -06:00
gdbstub: Introduce gdb_get_float32() to get 32-bit float registers
Since we now use a GByteArray, we can not use stfl_p() directly.
Introduce the gdb_get_float32() helper to load a float32 register.
Fixes: a010bdbe71
("extend GByteArray to read register helpers")
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200414163853.12164-2-philmd@redhat.com>
Message-Id: <20200414200631.12799-14-alex.bennee@linaro.org>
This commit is contained in:
parent
7b8c1527ae
commit
377f8f08be
2 changed files with 11 additions and 4 deletions
|
@ -125,6 +125,15 @@ static inline int gdb_get_reg128(GByteArray *buf, uint64_t val_hi,
|
||||||
return 16;
|
return 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int gdb_get_float32(GByteArray *array, float32 val)
|
||||||
|
{
|
||||||
|
uint8_t buf[sizeof(CPU_FloatU)];
|
||||||
|
|
||||||
|
stfl_p(buf, val);
|
||||||
|
g_byte_array_append(array, buf, sizeof(buf));
|
||||||
|
|
||||||
|
return sizeof(buf);
|
||||||
|
}
|
||||||
static inline int gdb_get_zeroes(GByteArray *array, size_t len)
|
static inline int gdb_get_zeroes(GByteArray *array, size_t len)
|
||||||
{
|
{
|
||||||
guint oldlen = array->len;
|
guint oldlen = array->len;
|
||||||
|
|
|
@ -58,11 +58,9 @@ int superh_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||||
return gdb_get_regl(mem_buf, env->fpscr);
|
return gdb_get_regl(mem_buf, env->fpscr);
|
||||||
case 25 ... 40:
|
case 25 ... 40:
|
||||||
if (env->fpscr & FPSCR_FR) {
|
if (env->fpscr & FPSCR_FR) {
|
||||||
stfl_p(mem_buf, env->fregs[n - 9]);
|
return gdb_get_float32(mem_buf, env->fregs[n - 9]);
|
||||||
} else {
|
|
||||||
stfl_p(mem_buf, env->fregs[n - 25]);
|
|
||||||
}
|
}
|
||||||
return 4;
|
return gdb_get_float32(mem_buf, env->fregs[n - 25]);
|
||||||
case 41:
|
case 41:
|
||||||
return gdb_get_regl(mem_buf, env->ssr);
|
return gdb_get_regl(mem_buf, env->ssr);
|
||||||
case 42:
|
case 42:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue