diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/m68k-tdep.c | 16 |
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), |