[llvm-dev] IR inline assembly: the x86 Intel "offset" operator
Eric Astor via llvm-dev
llvm-dev at lists.llvm.org
Mon Dec 9 12:27:18 PST 2019
Hi all,
I'm trying to land (a rebased version of) http://llvm.org/D37461 - which
should make it possible to handle x86 Intel assembly like
mov eax, offset Foo::ptr + 1
(Currently, omitting the +1 works... but offset doesn't work in compound
expressions.)
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
call void asm sideeffect inteldialect "mov eax, offset $0 + $$1,
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32** @"?ptr at Foo@@2PAHA")
But that expands to
mov eax, offset [?ptr at Foo@@2PAHA] + 1
which ends up incorrectly dereferencing the address first.
I haven't found a working combination of code & constraints that will
expand to
mov eax, offset ?ptr at Foo@@2PAHA + 1
Is this possible?
Thanks,
- Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191209/8011012f/attachment.html>
More information about the llvm-dev
mailing list