Mercurial > projects > ldc
comparison gen/irstate.h @ 954:e048e36bc155
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.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sat, 14 Feb 2009 15:25:48 +0100 |
parents | 1714836f2c0b |
children | 7e669954db7d |
comparison
equal
deleted
inserted
replaced
953:5fa3e0ea06e9 | 954:e048e36bc155 |
---|---|
86 std::vector<Identifier*> internalLabels; | 86 std::vector<Identifier*> internalLabels; |
87 | 87 |
88 AsmBlockStatement* asmBlock; | 88 AsmBlockStatement* asmBlock; |
89 const LLType* retty; | 89 const LLType* retty; |
90 unsigned retn; | 90 unsigned retn; |
91 | 91 bool retemu; // emulate abi ret with a temporary |
92 IRAsmBlock(AsmBlockStatement* b) : asmBlock(b), retty(NULL), retn(0) {} | 92 |
93 IRAsmBlock(AsmBlockStatement* b) : asmBlock(b), retty(NULL), retn(0), retemu(false) {} | |
93 }; | 94 }; |
94 | 95 |
95 // llvm::CallInst and llvm::InvokeInst don't share a common base | 96 // llvm::CallInst and llvm::InvokeInst don't share a common base |
96 // but share common functionality. to avoid duplicating code for | 97 // but share common functionality. to avoid duplicating code for |
97 // adjusting these common properties these structs are made | 98 // adjusting these common properties these structs are made |