:

error C2400 compiling with MS VS 2010

Added by: ~guest, 2017 XI 17

Added by: ~guest, 2017 XI 17

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?

Added by: ~t, 2017 XI 17

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.

Added by: ~guest, 2017 XI 17

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.