Fix for little endian ARMs
authorNick Clifton <nickc@cambridge.redhat.com>
Thu, 22 Nov 2001 12:44:39 +0000 (12:44 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 22 Nov 2001 12:44:39 +0000 (12:44 +0000)
From-SVN: r47266

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c

index 64e2664ef7133482bad88970a152bcd54c5f71ca..26e1e779a33d6ba8afb3ae6cb3f53707c2da8abe 100644 (file)
@@ -1,3 +1,8 @@
+2001-11-22  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * gcc.c-torture/execute/ieee/20000320-1.c: Fix patterns to work
+       for little endian ARMs.
+
 2001-11-20  Jakub Jelinek  <jakub@redhat.com>
 
        * gcc.c-torture/compile/20011119-1.c: New test.
index 274a12ebfc48166bd72178cc5209aafee4878dd0..6a96129a2632792be798c0cc4292bda8d9264f17 100644 (file)
@@ -48,6 +48,32 @@ int main()
       || sizeof (double) != sizeof (ull))
     exit (0);
   
+#if (defined __arm__ || defined __thumb__) && ! defined __ARMEB__
+  /* The ARM always stores FP numbers in big-wordian format,
+     even when running in little-byteian mode.  */
+  c(0x00000000369000000LL, 0x00000000U);
+  c(0x0000000136900000ULL, 0x00000001U);
+  c(0xffffffff369fffffULL, 0x00000001U);
+  c(0x0000000036A00000ULL, 0x00000001U);
+  c(0xffffffff36A7ffffULL, 0x00000001U);
+  c(0x0000000036A80000ULL, 0x00000002U);
+  c(0xffffffff36AfffffULL, 0x00000002U);
+  c(0x0000000036b00000ULL, 0x00000002U);
+  c(0x0000000136b00000ULL, 0x00000002U);
+  
+  c(0xdfffffff380fffffULL, 0x007fffffU);
+  c(0xe0000000380fffffULL, 0x00800000U);
+  c(0xe0000001380fffffULL, 0x00800000U);
+  c(0xffffffff380fffffULL, 0x00800000U);
+  c(0x0000000038100000ULL, 0x00800000U);
+  c(0x0000000138100000ULL, 0x00800000U);
+  c(0x1000000038100000ULL, 0x00800000U);
+  c(0x1000000138100000ULL, 0x00800001U);
+  c(0x2fffffff38100000ULL, 0x00800001U);
+  c(0x3000000038100000ULL, 0x00800002U);
+  c(0x5000000038100000ULL, 0x00800002U);
+  c(0x5000000138100000ULL, 0x00800003U);
+#else
   c(0x3690000000000000ULL, 0x00000000U);
   c(0x3690000000000001ULL, 0x00000001U);
   c(0x369fffffffffffffULL, 0x00000001U);
@@ -70,7 +96,8 @@ int main()
   c(0x3810000030000000ULL, 0x00800002U);
   c(0x3810000050000000ULL, 0x00800002U);
   c(0x3810000050000001ULL, 0x00800003U);
-    
+#endif
+
   if (failed)
     abort ();
   else