aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/m68k-tdep.c16
2 files changed, 9 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0f076f032f..b0d3c2e14a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2017-05-24 Yao Qi <yao.qi@linaro.org>
+ * m68k-tdep.c (m68k_convert_register_p): Check type's code is
+ TYPE_CODE_FLT or not.
+
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
* alpha-tdep.c (alpha_gdbarch_init): Use XCNEW instead of XNEW.
* avr-tdep.c (avr_gdbarch_init): Likewise.
* bfin-tdep.c (bfin_gdbarch_init): Likewise.
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 5b4736da67..f093446554 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -188,6 +188,8 @@ m68k_convert_register_p (struct gdbarch *gdbarch,
if (!gdbarch_tdep (gdbarch)->fpregs_present)
return 0;
return (regnum >= M68K_FP0_REGNUM && regnum <= M68K_FP0_REGNUM + 7
+ /* We only support floating-point values. */
+ && TYPE_CODE (type) == TYPE_CODE_FLT
&& type != register_type (gdbarch, M68K_FP0_REGNUM));
}
@@ -200,19 +202,9 @@ m68k_register_to_value (struct frame_info *frame, int regnum,
int *optimizedp, int *unavailablep)
{
gdb_byte from[M68K_MAX_REGISTER_SIZE];
- struct type *fpreg_type = register_type (get_frame_arch (frame),
- M68K_FP0_REGNUM);
+ struct type *fpreg_type = register_type (gdbarch, M68K_FP0_REGNUM);
- /* We only support floating-point values. */
- if (TYPE_CODE (type) != TYPE_CODE_FLT)
- {
- warning (_("Cannot convert floating-point register value "
- "to non-floating-point type."));
- *optimizedp = *unavailablep = 0;
- return 0;
- }
-
- /* Convert to TYPE. */
+ gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
/* Convert to TYPE. */
if (!get_frame_register_bytes (frame, regnum, 0, TYPE_LENGTH (type),