Mercurial > projects > ldc
diff gen/naked.cpp @ 1153:4454126b4345
Added support for single D type register return from __asm.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Sat, 28 Mar 2009 07:24:53 +0100 |
parents | 521dd1626d76 |
children | 9279a9dc6df3 |
line wrap: on
line diff
--- a/gen/naked.cpp Sat Mar 28 06:32:06 2009 +0100 +++ b/gen/naked.cpp Sat Mar 28 07:24:53 2009 +0100 @@ -376,7 +376,8 @@ } // build asm function type - llvm::FunctionType* FT = llvm::FunctionType::get(llvm::Type::VoidTy, argtypes, false); + const llvm::Type* ret_type = DtoType(fd->type->nextOf()); + llvm::FunctionType* FT = llvm::FunctionType::get(ret_type, argtypes, false); // build asm call bool sideeffect = true; @@ -384,8 +385,8 @@ llvm::Value* v = gIR->ir->CreateCall(ia, args.begin(), args.end(), ""); - // return NULL for now - return NULL; + // return call as im value + return new DImValue(fd->type->nextOf(), v); }