I’m having issues compiling crypto++'s inline assembly with recent builds of clang (from my experiments 5.0.0 onwards). The code in question is the 32-bit version of https://github.com/weidai11/cryptopp/blob/master/sha.cpp#L1005 which is failing on line 1005 with the error “error: invalid operand for instruction”.
I’ve bolied this code down to:
This compiles with GCC and clang 4.0.1 but fails with 5.0.0 and 6.0.0 https://godbolt.org/g/ikFCrk
Changing to AT&T syntax makes it build. Changing the jump to “0f” compiles (but obviously generates a jump to nowhere).
Any ideas how to solve this issue or is it a bug in clang’s intel syntax support?