Added support for using a temporary to implement emulated ABI return from inline asm, could be easier to use, but I think this will do. It's so extremely target dependent in any case that doing a completely generic approach seems hard.

This commit is contained in:
Tomas Lindquist Olsen
2009-02-14 15:25:48 +01:00
parent 3e17a21e0b
commit 4dee095dc3
3 changed files with 31 additions and 2 deletions

View File

@@ -88,8 +88,9 @@ struct IRAsmBlock
AsmBlockStatement* asmBlock;
const LLType* retty;
unsigned retn;
bool retemu; // emulate abi ret with a temporary
IRAsmBlock(AsmBlockStatement* b) : asmBlock(b), retty(NULL), retn(0) {}
IRAsmBlock(AsmBlockStatement* b) : asmBlock(b), retty(NULL), retn(0), retemu(false) {}
};
// llvm::CallInst and llvm::InvokeInst don't share a common base