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. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D113707/new/ https://reviews.llvm.org/D113707 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits