[llvm-commits] [llvm-gcc-4.0] r42207 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

Dale Johannesen dalej at apple.com
Fri Sep 21 13:35:14 PDT 2007


Author: johannes
Date: Fri Sep 21 15:35:14 2007
New Revision: 42207

URL: http://llvm.org/viewvc/llvm-project?rev=42207&view=rev
Log:
Make x87 long double work on big endian host cross build.


Modified:
    llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=42207&r1=42206&r2=42207&view=diff

==============================================================================
--- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Fri Sep 21 15:35:14 2007
@@ -5646,25 +5646,16 @@
     return ConstantFP::get(Ty, Ty==Type::FloatTy ? APFloat((float)V)
                                                  : APFloat(V));
   } else if (Ty==Type::X86_FP80Ty) {
-     long RealArr[4];
-     uint64_t UArr[2];
-     REAL_VALUE_TO_TARGET_LONG_DOUBLE(TREE_REAL_CST(exp), RealArr);
-
-    bool HostBigEndian = false;
-#ifdef HOST_WORDS_BIG_ENDIAN
-    HostBigEndian = true;
-#endif
-
-    if (WORDS_BIG_ENDIAN != HostBigEndian) {
-    // FIXME
-    } else {
-      UArr[0] = ((uint64_t)((uint16_t)RealArr[2]) << 48) |
-                ((uint64_t)((uint32_t)RealArr[1]) << 16) |
-                ((uint64_t)((uint16_t)(RealArr[0] >> 16)));
-      UArr[1] = (uint16_t)RealArr[0];
+    long RealArr[4];
+    uint64_t UArr[2];
+    REAL_VALUE_TO_TARGET_LONG_DOUBLE(TREE_REAL_CST(exp), RealArr);
+
+    UArr[0] = ((uint64_t)((uint16_t)RealArr[2]) << 48) |
+              ((uint64_t)((uint32_t)RealArr[1]) << 16) |
+              ((uint64_t)((uint16_t)(RealArr[0] >> 16)));
+    UArr[1] = (uint16_t)RealArr[0];
 
     return ConstantFP::get(Ty, APFloat(APInt(80, 2, UArr)));
-    }
   }
   assert(0 && "Floating point type not handled yet");
   return 0;   // outwit compiler warning





More information about the llvm-commits mailing list