Switch from generating the int128 typedefs based on targetdata to generating
authorChris Lattner <sabre@nondot.org>
Mon, 16 Jun 2008 04:25:29 +0000 (04:25 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 16 Jun 2008 04:25:29 +0000 (04:25 +0000)
them based on the end-compiler's capabilities.  This fixes PR2453

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52297 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/CBackend/CBackend.cpp

index 6829218aad2828ce88c90c052212df5dd610d45c..2e9902d2e3b08d8e673dc5b643ae0f61253d3b15 100644 (file)
@@ -1517,12 +1517,10 @@ static void generateCompilerSpecificCode(std::ostream& Out,
   // Output typedefs for 128-bit integers. If these are needed with a
   // 32-bit target or with a C compiler that doesn't support mode(TI),
   // more drastic measures will be needed.
-  if (TD->getPointerSize() >= 8) {
-    Out << "#ifdef __GNUC__ /* 128-bit integer types */\n"
-        << "typedef int __attribute__((mode(TI))) llvmInt128;\n"
-        << "typedef unsigned __attribute__((mode(TI))) llvmUInt128;\n"
-        << "#endif\n\n";
-  }
+  Out << "#if __GNUC__ && __LP64__ /* 128-bit integer types */\n"
+      << "typedef int __attribute__((mode(TI))) llvmInt128;\n"
+      << "typedef unsigned __attribute__((mode(TI))) llvmUInt128;\n"
+      << "#endif\n\n";
 
   // Output target-specific code that should be inserted into main.
   Out << "#define CODE_FOR_MAIN() /* Any target-specific code for main()*/\n";