2003-12-05 Jeff Johnston <jjohnstn@redhat.com>
authorJeff Johnston <jjohnstn@redhat.com>
Sat, 6 Dec 2003 00:17:04 +0000 (00:17 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Sat, 6 Dec 2003 00:17:04 +0000 (00:17 +0000)
        * ia64-tdep.c (ia64_gdbarch_init): Set up the gdbarch long double
        format to be the i387 extended float format which is used for
        long doubles stored in memory.

gdb/ChangeLog
gdb/ia64-tdep.c

index a898867a25ad8bc2679c09e63db906712d0d74a5..1e747bc26c1eeaa7566a1c3f12af0e35dc012813 100644 (file)
@@ -1,3 +1,9 @@
+2003-12-05  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * ia64-tdep.c (ia64_gdbarch_init): Set up the gdbarch long double
+       format to be the i387 extended float format which is used for
+       long doubles stored in memory. 
+
 2003-12-05  Mark Kettenis  <kettenis@gnu.org>
 
        From Ulrich Weigand  <weigand@informatik.uni-erlangen.de>:
index d3c86fda506ad8f1a883b6197535bcf7346fa8e6..19f18b7faa14a5d41ab1726c9fdb7bbb323e43f6 100644 (file)
@@ -3361,6 +3361,14 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
                0, "builtin_type_ia64_ext", NULL);
   TYPE_FLOATFORMAT (builtin_type_ia64_ext) = &floatformat_ia64_ext;
 
+  /* According to the ia64 specs, instructions that store long double floats 
+     in memory use a long-double format different than that used in the floating
+     registers.  The memory format matches the x86 extended float format which is
+     80 bits.  An OS may choose to use this format (e.g. Linux) or choose to use
+     a different format for storing long doubles (e.g. HPUX).  In the latter case,
+     the setting of the format may be moved/overridden in an OS-specific tdep file.  */
+  set_gdbarch_long_double_format (gdbarch, &floatformat_i387_ext);
+
   set_gdbarch_short_bit (gdbarch, 16);
   set_gdbarch_int_bit (gdbarch, 32);
   set_gdbarch_long_bit (gdbarch, 64);