Add IA64_MAX_FP_REGISTER_SIZE
authorAlan Hayward <alan.hayward@arm.com>
Tue, 6 Jun 2017 12:50:07 +0000 (13:50 +0100)
committerAlan Hayward <alan.hayward@arm.com>
Tue, 6 Jun 2017 12:50:07 +0000 (13:50 +0100)
gdb/
* ia64-tdep.c (IA64_MAX_FP_REGISTER_SIZE) Add.
(ia64_register_to_value): Use IA64_MAX_FP_REGISTER_SIZE.
(ia64_value_to_register): Likewise.
(ia64_extract_return_value): Likewise.
(ia64_store_return_value): Likewise.
(ia64_push_dummy_call): Likewise.

gdb/ChangeLog
gdb/ia64-tdep.c

index cdeac99e792b19471a0e69facb746a0a16201fd6..5452285d01c939d7932661d58e734eeb6d06e784 100644 (file)
@@ -1,3 +1,12 @@
+2017-06-06  Alan Hayward  <alan.hayward@arm.com>
+
+       * ia64-tdep.c (IA64_MAX_FP_REGISTER_SIZE) Add.
+       (ia64_register_to_value): Use IA64_MAX_FP_REGISTER_SIZE.
+       (ia64_value_to_register): Likewise.
+       (ia64_extract_return_value): Likewise.
+       (ia64_store_return_value): Likewise.
+       (ia64_push_dummy_call): Likewise.
+
 2017-06-04  Joel Brobecker  <brobecker@adacore.com>
 
        GDB 8.0 released.
index 7282acb20ac2c25e7f2c48fec3106300c385679f..d396fb81a62b0c2522900fd9cb0980aa2a5fb767 100644 (file)
@@ -125,6 +125,9 @@ static CORE_ADDR ia64_find_global_pointer (struct gdbarch *gdbarch,
 
 #define NUM_IA64_RAW_REGS 462
 
+/* Big enough to hold a FP register in bytes.  */
+#define IA64_FP_REGISTER_SIZE 16
+
 static int sp_regnum = IA64_GR12_REGNUM;
 
 /* NOTE: we treat the register stack registers r32-r127 as
@@ -1228,7 +1231,7 @@ ia64_register_to_value (struct frame_info *frame, int regnum,
                        int *optimizedp, int *unavailablep)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte in[MAX_REGISTER_SIZE];
+  gdb_byte in[IA64_FP_REGISTER_SIZE];
 
   /* Convert to TYPE.  */
   if (!get_frame_register_bytes (frame, regnum, 0,
@@ -1246,7 +1249,7 @@ ia64_value_to_register (struct frame_info *frame, int regnum,
                          struct type *valtype, const gdb_byte *in)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte out[MAX_REGISTER_SIZE];
+  gdb_byte out[IA64_FP_REGISTER_SIZE];
   convert_typed_floating (in, valtype, out, ia64_ext_type (gdbarch));
   put_frame_register (frame, regnum, out);
 }
@@ -3209,7 +3212,7 @@ ia64_extract_return_value (struct type *type, struct regcache *regcache,
   float_elt_type = is_float_or_hfa_type (type);
   if (float_elt_type != NULL)
     {
-      gdb_byte from[MAX_REGISTER_SIZE];
+      gdb_byte from[IA64_FP_REGISTER_SIZE];
       int offset = 0;
       int regnum = IA64_FR8_REGNUM;
       int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type);
@@ -3274,7 +3277,7 @@ ia64_store_return_value (struct type *type, struct regcache *regcache,
   float_elt_type = is_float_or_hfa_type (type);
   if (float_elt_type != NULL)
     {
-      gdb_byte to[MAX_REGISTER_SIZE];
+      gdb_byte to[IA64_FP_REGISTER_SIZE];
       int offset = 0;
       int regnum = IA64_FR8_REGNUM;
       int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type);
@@ -3836,7 +3839,7 @@ ia64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
          len = TYPE_LENGTH (type);
          while (len > 0 && floatreg < IA64_FR16_REGNUM)
            {
-             gdb_byte to[MAX_REGISTER_SIZE];
+             gdb_byte to[IA64_FP_REGISTER_SIZE];
              convert_typed_floating (value_contents (arg) + argoffset,
                                      float_elt_type, to,
                                      ia64_ext_type (gdbarch));