2003-03-11 Pierre Muller <muller@ics.u-strasbg.fr>
authorPierre Muller <muller@sourceware.org>
Tue, 11 Mar 2003 16:38:52 +0000 (16:38 +0000)
committerPierre Muller <muller@sourceware.org>
Tue, 11 Mar 2003 16:38:52 +0000 (16:38 +0000)
* doublest.c (floatformat_from_length): Accept also
the real size of 'long double' type.

gdb/ChangeLog
gdb/doublest.c

index 9407556ae68037a511f9580c91256f777ac282e8..da117699255f204f49dd5560edbdbfadebdcd4d6 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-11  Pierre Muller  <muller@ics.u-strasbg.fr>
+
+       * doublest.c (floatformat_from_length): Accept also
+       the real size of 'long double' type.
+
 2003-03-10  Klee Dienes  <kdienes@apple.com>
 
        * breakpoint.c (bpstat_copy): Copy the command lines as well
index e601a4dc405abd08c67c2a74983a791d849c23d1..3f68273877c66f605144cda998a487e21e21f5d5 100644 (file)
@@ -633,6 +633,14 @@ floatformat_from_length (int len)
     return TARGET_DOUBLE_FORMAT;
   else if (len * TARGET_CHAR_BIT == TARGET_LONG_DOUBLE_BIT)
     return TARGET_LONG_DOUBLE_FORMAT;
+  /* On i386 the 'long double' type takes 96 bits,
+     while the real number of used bits is only 80,
+     both in processor and in memory.  
+     The code below accepts the real bit size.  */ 
+  else if ((TARGET_LONG_DOUBLE_FORMAT != NULL) 
+          && (len * TARGET_CHAR_BIT ==
+               TARGET_LONG_DOUBLE_FORMAT->totalsize))
+    return TARGET_LONG_DOUBLE_FORMAT;
 
   return NULL;
 }