GMP 6.0.0a on AMD A8-6600K

Marc Glisse marc.glisse at inria.fr
Sun Apr 12 13:13:50 UTC 2015


On Sun, 12 Apr 2015, Niels Möller wrote:

> Kevin Buckley <kevin.m.buckley at gmail.com> writes:
>
>> Program received signal SIGILL, Illegal instruction.
>> 0x000000000040214f in check_onebit () at t-get_d.c:86
>> 86            np[bit/GMP_NUMB_BITS] = CNST_LIMB(1) << (bit % GMP_NUMB_BITS);
>>
>> (gdb) p $pc
>> $1 = (void (*)()) 0x40214f <check_onebit+79>
>
>> => 0x000000000040214f <+79>:    vmovsd 0x9031(%rip),%xmm2        # 0x40b188
>
> So this is in code generated by gcc. I have no idea what the vmovsd
> does, or which instruction set extension it belongs to. Hopefully
> someone else does.

It is the most basic AVX instruction, loading a double from memory to a 
register.

> In the mean time, you could try playing with the command line options to
> gcc and see if you can stop it from generating this instruction.

-mno-avx or a -march naming an older architecture.

-- 
Marc Glisse


More information about the gmp-bugs mailing list