Mercurial > projects > ldc
diff gen/binops.cpp @ 104:4d1e9eb001e0 trunk
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
author | lindquist |
---|---|
date | Mon, 19 Nov 2007 02:58:58 +0100 |
parents | fd32135dca3e |
children | 7816aafeea3c |
line wrap: on
line diff
--- a/gen/binops.cpp Sun Nov 18 08:25:07 2007 +0100 +++ b/gen/binops.cpp Mon Nov 19 02:58:58 2007 +0100 @@ -3,26 +3,35 @@ #include "declaration.h" #include "gen/irstate.h" +#include "gen/tollvm.h" #include "gen/dvalue.h" +////////////////////////////////////////////////////////////////////////////// + DValue* DtoBinAdd(DValue* lhs, DValue* rhs) { llvm::Value* v = gIR->ir->CreateAdd(lhs->getRVal(), rhs->getRVal(), "tmp"); return new DImValue( lhs->getType(), v ); } +////////////////////////////////////////////////////////////////////////////// + DValue* DtoBinSub(DValue* lhs, DValue* rhs) { llvm::Value* v = gIR->ir->CreateSub(lhs->getRVal(), rhs->getRVal(), "tmp"); return new DImValue( lhs->getType(), v ); } +////////////////////////////////////////////////////////////////////////////// + DValue* DtoBinMul(DValue* lhs, DValue* rhs) { llvm::Value* v = gIR->ir->CreateMul(lhs->getRVal(), rhs->getRVal(), "tmp"); return new DImValue( lhs->getType(), v ); } +////////////////////////////////////////////////////////////////////////////// + DValue* DtoBinDiv(DValue* lhs, DValue* rhs) { Type* t = lhs->getType(); @@ -39,6 +48,8 @@ return new DImValue( lhs->getType(), res ); } +////////////////////////////////////////////////////////////////////////////// + DValue* DtoBinRem(DValue* lhs, DValue* rhs) { Type* t = lhs->getType();