[PATCH] D113707: [clang] Make -masm=intel affect inline asm style

Nico Weber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 12 10:01:08 PST 2021

thakis added a comment.

Thanks for pointing out built-in headers, that's a great point. I started adding .att_syntax lines where needed, but the I realized that that doens't work: it's too late for things taking memory, since %0 replacement is done with asm writer setting before getting to reading the snippet. So %0 is replaced with (say) `[eax]` before things get to the asm parser, and then `.att_syntax` switches it to att syntax, and then it says "can't do `[eax]` in att syntax".

The official solution for this according to "Multiple assembler dialects in asm templates" in gcc docs->Extensions->Inline Assembly->Extended Asm is to write every inline asm snippet twice: `bt{l %[Offset],%[Base] | %[Base],%[Offset]}`. clang doesn't yet support {|}. So I think I have to update this patch to make clang support {|} and use that in the intrinsic headers where needed.



More information about the cfe-commits mailing list