Mercurial > projects > ldc
diff gen/statements.cpp @ 1024:9167d492cbc2
Abstracted more (most) ABI details out of the normal codegen.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 03 Mar 2009 02:51:21 +0100 |
parents | 8c73ff5f69e0 |
children | 45af482e3832 |
line wrap: on
line diff
--- a/gen/statements.cpp Sun Mar 01 22:40:15 2009 +0100 +++ b/gen/statements.cpp Tue Mar 03 02:51:21 2009 +0100 @@ -63,7 +63,6 @@ { // sanity check IrFunction* f = p->func(); - assert(f->type->retInPtr); assert(f->decl->ir.irFunc->retArg); // emit dbg line @@ -94,7 +93,7 @@ delete e; // do abi specific transformations on the return value - v = gABI->putRet(p->func()->type, v); + v = p->func()->type->fty->putRet(exp->type, v); if (Logger::enabled()) Logger::cout() << "return value is '" <<*v << "'\n"; @@ -111,7 +110,7 @@ v = llvm::Constant::getNullValue(p->mainFunc->getReturnType()); else v = gIR->ir->CreateBitCast(v, p->topfunc()->getReturnType(), "tmp"); - + if (Logger::enabled()) Logger::cout() << "return value after cast: " << *v << '\n'; }