Mercurial > projects > ldc
comparison gen/asmstmt.cpp @ 221:68687d8c3e9a trunk
[svn r237] some inline asm output now seems to work, see tangotests/asm2.d
author | lindquist |
---|---|
date | Fri, 06 Jun 2008 20:51:43 +0200 |
parents | ccc2e6898a78 |
children | 251548c1035d |
comparison
equal
deleted
inserted
replaced
220:ccc2e6898a78 | 221:68687d8c3e9a |
---|---|
255 return; | 255 return; |
256 | 256 |
257 static std::string i_cns = "i"; | 257 static std::string i_cns = "i"; |
258 static std::string p_cns = "p"; | 258 static std::string p_cns = "p"; |
259 static std::string m_cns = "m"; | 259 static std::string m_cns = "m"; |
260 static std::string mw_cns = "=m"; | 260 static std::string mw_cns = "=*m"; |
261 static std::string mrw_cns = "+m"; | 261 static std::string mrw_cns = "+m"; |
262 static std::string memory_name = "memory"; | 262 static std::string memory_name = "memory"; |
263 | 263 |
264 AsmCode * code = (AsmCode *) asmcode; | 264 AsmCode * code = (AsmCode *) asmcode; |
265 std::deque<DValue*> input_values; | 265 std::deque<DValue*> input_values; |
455 LLSmallVector<LLValue*, 2> callargs; | 455 LLSmallVector<LLValue*, 2> callargs; |
456 | 456 |
457 size_t cn = output_values.size(); | 457 size_t cn = output_values.size(); |
458 for (size_t i=0; i<cn; ++i) | 458 for (size_t i=0; i<cn; ++i) |
459 { | 459 { |
460 LLValue* val = output_values[i]->getLVal(); | 460 LLValue* val = output_values[i]->getRVal(); |
461 callargs.push_back(val); | 461 callargs.push_back(val); |
462 } | 462 } |
463 | 463 |
464 cn = input_values.size(); | 464 cn = input_values.size(); |
465 for (size_t i=0; i<cn; ++i) | 465 for (size_t i=0; i<cn; ++i) |