diff options
author | Alan Hayward <alan.hayward@arm.com> | 2017-06-06 13:50:07 +0100 |
---|---|---|
committer | Alan Hayward <alan.hayward@arm.com> | 2017-06-06 13:50:07 +0100 |
commit | ae0d01d663a2bac65afb8b94bbf1a91d95298f68 (patch) | |
tree | 8640bf94f24be84ca3dd829acfda44e93129dd87 | |
parent | 670b1a13351f34c38ea1abb6cb20e247fb002015 (diff) | |
download | gdb-ae0d01d663a2bac65afb8b94bbf1a91d95298f68.zip gdb-ae0d01d663a2bac65afb8b94bbf1a91d95298f68.tar.gz gdb-ae0d01d663a2bac65afb8b94bbf1a91d95298f68.tar.bz2 |
Add IA64_MAX_FP_REGISTER_SIZE
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.
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/ia64-tdep.c | 13 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cdeac99..5452285 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 7282acb..d396fb8 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -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)); |