# HG changeset patch # User ChristianK # Date 1212781457 -7200 # Node ID 251548c1035d26897fe04caf39e4203e4c54d5e5 # Parent 68687d8c3e9aa75612671d502bc6a8c01947a812 [svn r238] use *m for memory input constraints and pass in their address diff -r 68687d8c3e9a -r 251548c1035d gen/asmstmt.cpp --- a/gen/asmstmt.cpp Fri Jun 06 20:51:43 2008 +0200 +++ b/gen/asmstmt.cpp Fri Jun 06 21:44:17 2008 +0200 @@ -256,7 +256,7 @@ static std::string i_cns = "i"; static std::string p_cns = "p"; - static std::string m_cns = "m"; + static std::string m_cns = "*m"; static std::string mw_cns = "=*m"; static std::string mrw_cns = "+m"; static std::string memory_name = "memory"; diff -r 68687d8c3e9a -r 251548c1035d gen/d-asm-i386.h --- a/gen/d-asm-i386.h Fri Jun 06 20:51:43 2008 +0200 +++ b/gen/d-asm-i386.h Fri Jun 06 21:44:17 2008 +0200 @@ -1913,12 +1913,10 @@ insnTemplate->writebyte('*'); use_star = false; } - if (mode == Mode_Output) - { - e = new AddrExp(0, e); - assert(decl); - e->type = decl->type->pointerTo(); - } + e = new AddrExp(0, e); + assert(decl); + e->type = decl->type->pointerTo(); + addOperand(fmt, Arg_Memory, e, asmcode, mode); } }