<div dir="ltr">Hi all,<div><br></div><div>I'm trying to land (a rebased version of) <a href="http://llvm.org/D37461" target="_blank">http://llvm.org/D37461</a> - which should make it possible to handle x86 Intel assembly like</div><div>    <font face="monospace">mov eax, offset Foo::ptr + 1</font></div><div><font face="arial, sans-serif">(Currently, omitting the +1 works... but offset doesn't work in compound expressions.)</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">I'm having trouble figuring out what inline assembly I can emit into the LLVM IR that will work properly. So far, the closest I've gotten is</font></div><div><font face="arial, sans-serif">    </font><font face="monospace">call void asm sideeffect inteldialect "mov eax, offset $0 + $$1, "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32** @"?ptr@Foo@@2PAHA")</font></div><div>But that expands to</div><div>    <font face="monospace">mov eax, offset [?ptr@Foo@@2PAHA] + 1</font></div><div>which ends up incorrectly dereferencing the address first.</div><div><br></div><div><font face="arial, sans-serif">I haven't found a working combination of code & constraints that will expand to</font></div><div><font face="arial, sans-serif">    </font><font face="monospace">mov eax, offset ?ptr@Foo@@2PAHA + 1</font></div><div><font face="arial, sans-serif">Is this possible?</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Thanks,</font></div><div><font face="arial, sans-serif">- Eric</font></div></div>