[PATCH 1/8] Add a big-endian version of the ia64-ext floatformat

Joel Brobecker
2010-12-28T04:43:27Z

ia64-tdep.c defines a floatformats_ia64_ext that should contain
both the little-endian and the big-endian version of the float
format used in the ia64 registers (an 82bit float format).
Right now, both entries point to the same little-endian definition.

A big-endian definition is now necessary for the ia64-hpux port.

gdb/ChangeLog:

* ia64-tdep.c (floatformat_ia64_ext_little): Renames
floatformat_ia64_ext.
(floatformat_ia64_ext_big): New static const.
(floatformats_ia64_ext): Set first entry to &floatformat_ia64_ext_big.

---
gdb/ia64-tdep.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 3cc0150..6e24c9e 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -285,16 +285,22 @@ floatformat_valid (const struct floatformat *fmt, const void *from)
return 1;
}

-static const struct floatformat floatformat_ia64_ext =
+static const struct floatformat floatformat_ia64_ext_little =
{
floatformat_little, 82, 0, 1, 17, 65535, 0x1ffff, 18, 64,
- floatformat_intbit_yes, "floatformat_ia64_ext", floatformat_valid, NULL
+ floatformat_intbit_yes, "floatformat_ia64_ext_little", floatformat_valid, NULL
+};
+
+static const struct floatformat floatformat_ia64_ext_big =
+{
+ floatformat_big, 82, 46, 47, 17, 65535, 0x1ffff, 64, 64,
+ floatformat_intbit_yes, "floatformat_ia64_ext_big", floatformat_valid
};

static const struct floatformat *floatformats_ia64_ext[2] =
{
- &floatformat_ia64_ext,
- &floatformat_ia64_ext
+ &floatformat_ia64_ext_big,
+ &floatformat_ia64_ext_little
};

static struct type *
--
1.7.1