target/m68k: use gdb_get_reg helpers

This is cleaner than poking memory directly and will make later
clean-ups easier.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200316172155.971-13-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2020-03-16 17:21:39 +00:00
parent 8b1ca58c3b
commit 462474d760

View File

@ -72,19 +72,15 @@ static int cf_fpu_gdb_get_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
{ {
if (n < 8) { if (n < 8) {
float_status s; float_status s;
stfq_p(mem_buf, floatx80_to_float64(env->fregs[n].d, &s)); return gdb_get_reg64(mem_buf, floatx80_to_float64(env->fregs[n].d, &s));
return 8;
} }
switch (n) { switch (n) {
case 8: /* fpcontrol */ case 8: /* fpcontrol */
stl_be_p(mem_buf, env->fpcr); return gdb_get_reg32(mem_buf, env->fpcr);
return 4;
case 9: /* fpstatus */ case 9: /* fpstatus */
stl_be_p(mem_buf, env->fpsr); return gdb_get_reg32(mem_buf, env->fpsr);
return 4;
case 10: /* fpiar, not implemented */ case 10: /* fpiar, not implemented */
memset(mem_buf, 0, 4); return gdb_get_reg32(mem_buf, 0);
return 4;
} }
return 0; return 0;
} }
@ -112,21 +108,18 @@ static int cf_fpu_gdb_set_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
static int m68k_fpu_gdb_get_reg(CPUM68KState *env, uint8_t *mem_buf, int n) static int m68k_fpu_gdb_get_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
{ {
if (n < 8) { if (n < 8) {
stw_be_p(mem_buf, env->fregs[n].l.upper); int len = gdb_get_reg16(mem_buf, env->fregs[n].l.upper);
memset(mem_buf + 2, 0, 2); len += gdb_get_reg16(mem_buf + len, 0);
stq_be_p(mem_buf + 4, env->fregs[n].l.lower); len += gdb_get_reg64(mem_buf + len, env->fregs[n].l.lower);
return 12; return len;
} }
switch (n) { switch (n) {
case 8: /* fpcontrol */ case 8: /* fpcontrol */
stl_be_p(mem_buf, env->fpcr); return gdb_get_reg32(mem_buf, env->fpcr);
return 4;
case 9: /* fpstatus */ case 9: /* fpstatus */
stl_be_p(mem_buf, env->fpsr); return gdb_get_reg32(mem_buf, env->fpsr);
return 4;
case 10: /* fpiar, not implemented */ case 10: /* fpiar, not implemented */
memset(mem_buf, 0, 4); return gdb_get_reg32(mem_buf, 0);
return 4;
} }
return 0; return 0;
} }