error C2400 compiling with MS VS 2010
Compiling with MS VS 2010, get compiler error message...
2400: inline assembler syntax error in 'opcode'; found 'XOR'
c:\ttmath-0.9.3\ttmath\ttmathuint_x86.h(902) : while compiling class template member function 'ttmath::uint
ttmath::UInt<value_size>::Rcl2_one(ttmath::uint)'
...compiling this code...
template<uint value_size>
uint UInt<value_size>::Rcl2_one(uint c)
{
uint b = value_size;
uint * p1 = table;
#ifndef __GNUC__
__asm
{
push ebx
push ecx
push edx
mov ebx, [p1]
xor edx, edx < Error in this line
mov ecx, [c]
neg ecx
mov ecx, [b]
...and get similar errors elsewhere. do I need to move on to a later compiler?
It should work just fine, I have to investigate what is going on.
Meanwhile you can define TTMATH_NOASM macro to disable the asm code.
I've now compiled it with gcc, and then MS VS too. I just had to enable language extensions, I normally have them turned off. I should have known that (or rtfm). Sorry about the noise.
Anyway, it's a great lib. Going like the blazes. I'm using it for some number theory. looking for 4 rational triangles on the unit circle whose areas sum to zero. They seem to be very rare. It's related to the 3x3 magic square of squares problem, in case you're interested. Thanks for make the lib available.