diff gen/tollvm.cpp @ 264:a9dae3da4e87 trunk

[svn r285] Fixed D -> bool LLVM helper for floating point values. Changed the way D-style varargs are passed, now each param should be aligned to size_t.sizeof.
author lindquist
date Sat, 14 Jun 2008 17:28:13 +0200
parents b604c56945b0
children 6b62e8cdf970
line wrap: on
line diff
--- a/gen/tollvm.cpp	Sat Jun 14 06:13:35 2008 +0200
+++ b/gen/tollvm.cpp	Sat Jun 14 17:28:13 2008 +0200
@@ -330,14 +330,16 @@
             return new llvm::ICmpInst(llvm::ICmpInst::ICMP_NE, val, zero, "tmp", gIR->scopebb());
         }
     }
+    else if (t->isFloatingPoint())
+    {
+        LLValue* zero = llvm::Constant::getNullValue(t);
+        return new llvm::FCmpInst(llvm::FCmpInst::FCMP_ONE, val, zero, "tmp", gIR->scopebb());
+    }
     else if (isaPointer(t)) {
         LLValue* zero = llvm::Constant::getNullValue(t);
         return new llvm::ICmpInst(llvm::ICmpInst::ICMP_NE, val, zero, "tmp", gIR->scopebb());
     }
-    else
-    {
-        Logger::cout() << *t << '\n';
-    }
+    std::cout << "unsupported -> bool : " << *t << '\n';
     assert(0);
     return 0;
 }