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)