Inline assembly needs "cc" clobber to avoid miscompilation
Torbjörn Granlund
tg at gmplib.org
Sat Nov 23 18:06:22 UTC 2019
I used a few more hours of my time on this.
My conclusion is that "cc" clobber is completely ignored by clang. In
fact, clang happily schedules carry-set and carry-use around inline asm
with "cc".
This is another example that it's just a waste time trying to make GMP
compile reliably with clang. See also Table 3 and the list below that
table at https://gmplib.org/devel/tm/gmp/date.html for some context.
Perhaps we could help clang's users by disabling GMP's inline asm
altogether. It make things run a bit slower, but correctness is not
optional, speed is. (We never enabled inline asm, it got enabled since
clang claims to be gcc.)
--
Torbjörn
Please encrypt, key id 0xC8601622
More information about the gmp-bugs
mailing list