merge from gcc
authorDJ Delorie <dj@redhat.com>
Mon, 31 Oct 2005 18:01:19 +0000 (18:01 +0000)
committerDJ Delorie <dj@redhat.com>
Mon, 31 Oct 2005 18:01:19 +0000 (18:01 +0000)
include/ChangeLog
include/floatformat.h
libiberty/ChangeLog
libiberty/floatformat.c

index cb2ca5850cb5cdb87f4d000157a9b8eac1aa74bc..e2c90f819a7240a30e9793424ce9df68384995d2 100644 (file)
@@ -1,3 +1,9 @@
+2005-10-31  Mark Kettenis  <kettenis@gnu.org>
+
+       * floatformat.h (enum floatformat_byteorders): Add
+       floatformat_vax.
+       (floatformat_vax_aingle, floatformat_vax_double): Declare.
+
 2005-10-28  Dave Brolley  <brolley@redhat.com>
 
        Contribute the following changes:
index a24487430504148e2a968996da65c88190c227a5..f1bd7f601f536716b1e3cf6e8dc4d1e7dd0e7577 100644 (file)
@@ -29,25 +29,26 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
    (i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field
    contains with the *_start and *_len fields.  */
 
-/* What is the order of the bytes. */
+/* What is the order of the bytes */
 
 enum floatformat_byteorders {
-
   /* Standard little endian byte order.
      EX: 1.2345678e10 => 00 00 80 c5 e0 fe 06 42 */
-
   floatformat_little,
 
   /* Standard big endian byte order.
      EX: 1.2345678e10 => 42 06 fe e0 c5 80 00 00 */
-
   floatformat_big,
 
   /* Little endian byte order but big endian word order.
      EX: 1.2345678e10 => e0 fe 06 42 00 00 80 c5 */
+  floatformat_littlebyte_bigword,
 
-  floatformat_littlebyte_bigword
-
+  /* VAX byte order.  Little endian byte order with 16-bit words.  The
+     following example is an illustration of the byte order only; VAX
+     doesn't have a fully IEEE compliant floating-point format.
+     EX: 1.2345678e10 => 80 c5 00 00 06 42 e0 fe */
+  floatformat_vax
 };
 
 enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no };
@@ -97,6 +98,12 @@ extern const struct floatformat floatformat_ieee_double_little;
 
 extern const struct floatformat floatformat_ieee_double_littlebyte_bigword;
 
+/* floatformats for VAX.  */
+
+extern const struct floatformat floatformat_vax_f;
+extern const struct floatformat floatformat_vax_d;
+extern const struct floatformat floatformat_vax_g;
+
 /* floatformats for various extendeds.  */
 
 extern const struct floatformat floatformat_i387_ext;
index d2bda7022ed11661cc39d438ee69f49d30f6e9a1..eeae1e3435fe246f8dc54a408991d6a03a777525 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-31  Mark Kettenis  <kettenis@gnu.org>
+
+       * floatformat.c (floatformat_vax_aingle, floatformat_vax_double):
+       New variables.
+
 2005-10-07  Mark Mitchell  <mark@codesourcery.com>
 
        * at-file.texi: Fix typo.
index 8f0d7894641702ab6fc04f51058f94ec8060f627..28c9fbf662dbae73270c3b900f7fbe5bd1a7256b 100644 (file)
@@ -108,6 +108,30 @@ const struct floatformat floatformat_ieee_double_littlebyte_bigword =
   floatformat_always_valid
 };
 
+/* floatformat for VAX.  Not quite IEEE, but close enough.  */
+
+const struct floatformat floatformat_vax_f =
+{
+  floatformat_vax, 32, 0, 1, 8, 129, 0, 9, 23,
+  floatformat_intbit_no,
+  "floatformat_vax_f",
+  floatformat_always_valid
+};
+const struct floatformat floatformat_vax_d =
+{
+  floatformat_vax, 64, 0, 1, 8, 129, 0, 9, 55,
+  floatformat_intbit_no,
+  "floatformat_vax_d",
+  floatformat_always_valid
+};
+const struct floatformat floatformat_vax_g =
+{
+  floatformat_vax, 64, 0, 1, 11, 1025, 0, 12, 52,
+  floatformat_intbit_no,
+  "floatformat_vax_g",
+  floatformat_always_valid
+};
+
 static int floatformat_i387_ext_is_valid (const struct floatformat *fmt,
                                          const void *from);