This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Add IA64_MAX_FP_REGISTER_SIZE
- From: Alan Hayward <alahay01 at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 6 Jun 2017 12:52:01 -0000
- Subject: [binutils-gdb] Add IA64_MAX_FP_REGISTER_SIZE
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ae0d01d663a2bac65afb8b94bbf1a91d95298f68
commit ae0d01d663a2bac65afb8b94bbf1a91d95298f68
Author: Alan Hayward <alan.hayward@arm.com>
Date: Tue Jun 6 13:50:07 2017 +0100
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.
Diff:
---
gdb/ChangeLog | 9 +++++++++
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));