aboutsummaryrefslogtreecommitdiff
path: root/gdb/ia64-tdep.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2003-12-06 00:17:04 +0000
committerJeff Johnston <jjohnstn@redhat.com>2003-12-06 00:17:04 +0000
commit32edc941e1fb0863accee2ad345616f0d6af9517 (patch)
tree8aec57dd51ac12b451d0d401b9da5984a252ba96 /gdb/ia64-tdep.c
parentaaad4cf36a0947e445e5b9aef431430b8630e4ee (diff)
downloadgdb-32edc941e1fb0863accee2ad345616f0d6af9517.zip
gdb-32edc941e1fb0863accee2ad345616f0d6af9517.tar.gz
gdb-32edc941e1fb0863accee2ad345616f0d6af9517.tar.bz2
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.
Diffstat (limited to 'gdb/ia64-tdep.c')
-rw-r--r--gdb/ia64-tdep.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index d3c86fd..19f18b7 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -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);