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