2017-05-24 Yao Qi <yao.qi@linaro.org>
+ * alpha-tdep.c (alpha_convert_register_p): Return true if type
+ length is 4.
+ (alpha_register_to_value): Remove type length check.
+ (alpha_value_to_register): Likewise.
+
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
* ia64-tdep.c (ia64_convert_register_p): Check type's code is
TYPE_CODE_FLT.
/* The alpha needs a conversion between register and memory format if the
register is a floating point register and memory format is float, as the
register format must be double or memory format is an integer with 4
- bytes or less, as the representation of integers in floating point
+ bytes, as the representation of integers in floating point
registers is different. */
static int
struct type *type)
{
return (regno >= ALPHA_FP0_REGNUM && regno < ALPHA_FP0_REGNUM + 31
- && TYPE_LENGTH (type) != 8);
+ && TYPE_LENGTH (type) == 4);
}
static int
in, optimizedp, unavailablep))
return 0;
- if (TYPE_LENGTH (valtype) == 4)
- {
- alpha_sts (gdbarch, out, in);
- *optimizedp = *unavailablep = 0;
- return 1;
- }
-
- error (_("Cannot retrieve value from floating point register"));
+ gdb_assert (TYPE_LENGTH (valtype) == 4);
+ alpha_sts (gdbarch, out, in);
+ *optimizedp = *unavailablep = 0;
+ return 1;
}
static void
{
gdb_byte out[MAX_REGISTER_SIZE];
- switch (TYPE_LENGTH (valtype))
- {
- case 4:
- alpha_lds (get_frame_arch (frame), out, in);
- break;
- default:
- error (_("Cannot store value in floating point register"));
- }
+ gdb_assert (TYPE_LENGTH (valtype) == 4);
+ alpha_lds (get_frame_arch (frame), out, in);
+
put_frame_register (frame, regnum, out);
}