Mercurial > projects > ldc
diff gen/d-asm-i386.h @ 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 |
line wrap: on
line diff
--- a/gen/d-asm-i386.h Fri Jun 06 20:14:51 2008 +0200 +++ b/gen/d-asm-i386.h Fri Jun 06 20:51:43 2008 +0200 @@ -1855,8 +1855,12 @@ ((operand->baseReg == Reg_EBP && ! sc->func->naked ) || (operand->baseReg == Reg_ESP && sc->func->naked)) ) { - e = new AddrExp(0, e); - e->type = decl->type->pointerTo(); + if (mode == Mode_Output) + { + e = new AddrExp(0, e); + e->type = decl->type->pointerTo(); + } + #if !IN_LLVM /* DMD uses the same frame offsets for naked functions. */ if (sc->func->naked) @@ -1909,6 +1913,12 @@ insnTemplate->writebyte('*'); use_star = false; } + if (mode == Mode_Output) + { + e = new AddrExp(0, e); + assert(decl); + e->type = decl->type->pointerTo(); + } addOperand(fmt, Arg_Memory, e, asmcode, mode); } }