Hi Frank,

Yes, it seems to work. Here is a sample output:

$ ./test_asm64_long 2309865 -4320000076

Addition:

C: 2309865 plus -4320000076 = -4317690211

ASM64: 2309865 plus -4320000076 = -4317690211

Substraction:

C: 2309865 minus -4320000076 = 4322309941

ASM64: 2309865 minus -4320000076 = 4322309941

Increment:

C: inc(2309865) = 2309866

ASM64: inc(2309865) = 2309866

C: inc(-4320000076) = -4320000075

ASM64: inc(-4320000076) = -4320000075

Decrement:

C: dec(2309865) = 2309864

ASM64: dec(2309865) = 2309864

C: dec(-4320000076) = -4320000077

ASM64: dec(-4320000076) = -4320000077

Sign change:

C: minus(2309865) = -2309865

ASM64: minus(2309865) = -2309865

C: minus(-4320000076) = 4320000076

ASM64: minus(-4320000076) = 4320000076

Maximum:

C : max(2309865, -4320000076) = 2309865

ASM64: max(2309865, -4320000076) = 2309865

Minimum:

C : min(2309865, -4320000076) = -4320000076

ASM64: min(2309865, -4320000076) = -4320000076

Multiplication:

C: 2309865 times -4320000076 = -9978616975549740

ASM64: 2309865 times -4320000076 = -9978616975549740

Division: quotient

C: 2309865 div -4320000076 = 0

ASM64: 2309865 div -4320000076 = 0

Division: remainder

C: 2309865 mod -4320000076 = 2309865

ASM64: 2309865 mod -4320000076 = 2309865

Dision: quotient and remainder in one:

ASM64: 2309865 mdiv -4320000076 : (q: 0 r: 2309865)

Now I see a little bug: Dision for Division

Best,

Jordi