Hayden Livingston via llvm-dev
2020-Oct-14 09:20 UTC
[llvm-dev] Windows PDATA/XDATA for Clang Inline Assembly
I have found no way to give directives to the inline assembler such that it generates the relevant pdata/xdata. Is this a limitation or I'm being dense? If I forgot inline assembly but still use lld-link will my object file from say MASM get linked properly?
Reid Kleckner via llvm-dev
2020-Oct-15 17:33 UTC
[llvm-dev] [cfe-dev] Windows PDATA/XDATA for Clang Inline Assembly
I managed to make it work with naked functions: https://gcc.godbolt.org/z/9q5r7W Compiling locally results in an object with .pdata/.xdata. I would expect you could use gcc-style inline asm here too if you like. Generally, if you use these directives in a regular, non-naked (clothed?) function, you should expect to get errors from the assembler about directives outside the prologue. The compiler will assume it is responsible for the prologue, and emit the unwind info directives. If you were to use masm instead, yes, I would expect lld-link to still accept it. On Wed, Oct 14, 2020 at 2:20 AM Hayden Livingston via cfe-dev < cfe-dev at lists.llvm.org> wrote:> I have found no way to give directives to the inline assembler such > that it generates the relevant pdata/xdata. > > Is this a limitation or I'm being dense? > > If I forgot inline assembly but still use lld-link will my object file > from say MASM get linked properly? > _______________________________________________ > cfe-dev mailing list > cfe-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201015/de3f096b/attachment.html>
Hayden Livingston via llvm-dev
2020-Oct-17 06:07 UTC
[llvm-dev] [cfe-dev] Windows PDATA/XDATA for Clang Inline Assembly
Thank you, Reid for this reply and all the work you (and others) do to help Windows users of LLVM/Clang. And this works for ARM64 as well? https://lists.llvm.org/pipermail/llvm-dev/2018-July/124727.html which is a couple of years old but you ask someone to see if they would add support I don't know if that ever made it. On Thu, Oct 15, 2020 at 10:33 AM Reid Kleckner <rnk at google.com> wrote:> > I managed to make it work with naked functions: > https://gcc.godbolt.org/z/9q5r7W > Compiling locally results in an object with .pdata/.xdata. I would expect you could use gcc-style inline asm here too if you like. > > Generally, if you use these directives in a regular, non-naked (clothed?) function, you should expect to get errors from the assembler about directives outside the prologue. The compiler will assume it is responsible for the prologue, and emit the unwind info directives. > > If you were to use masm instead, yes, I would expect lld-link to still accept it. > > On Wed, Oct 14, 2020 at 2:20 AM Hayden Livingston via cfe-dev <cfe-dev at lists.llvm.org> wrote: >> >> I have found no way to give directives to the inline assembler such >> that it generates the relevant pdata/xdata. >> >> Is this a limitation or I'm being dense? >> >> If I forgot inline assembly but still use lld-link will my object file >> from say MASM get linked properly? >> _______________________________________________ >> cfe-dev mailing list >> cfe-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev