illegal instruction error with "get_d"

Torbjorn Granlund tg at gmplib.org
Wed Apr 2 17:22:37 UTC 2014


edA-qa mort-ora-y <eda-qa at disemia.com> writes:

  Program received signal SIGILL, Illegal instruction.
  0x00007ffff433b70e in __gmpn_get_d () from /opt/gmp/install/lib/libgmp.so.10
  (gdb) x/10i $pc
  => 0x7ffff433b70e <__gmpn_get_d+158>:   vmovsd -0x8(%rsp),%xmm0
     0x7ffff433b714 <__gmpn_get_d+164>:   retq
     0x7ffff433b715 <__gmpn_get_d+165>:   nopl   (%rax)
     0x7ffff433b718 <__gmpn_get_d+168>:   cmp    $0x1,%rsi
     0x7ffff433b71c <__gmpn_get_d+172>:   jle    0x7ffff433b6bf
  <__gmpn_get_d+79>
     0x7ffff433b71e <__gmpn_get_d+174>:   mov    -0x10(%r9),%rsi
     0x7ffff433b722 <__gmpn_get_d+178>:   mov    %eax,%ecx
     0x7ffff433b724 <__gmpn_get_d+180>:   shr    %cl,%rsi
     0x7ffff433b727 <__gmpn_get_d+183>:   or     %rsi,%rdi
     0x7ffff433b72a <__gmpn_get_d+186>:   jmp    0x7ffff433b6bf
  <__gmpn_get_d+79>

I think that nails it. There were problems in old Xen releases too with
AVX instructions.  But wait, perhaps your GMP build is misconfigured,
and your CPU doesn't really handle AVX insn?

I cannot find any mention of the CPU type and GMP configure string used
in your bug report.

If this is a similar bug to te one in Xen, than we're stuck.  Xen claims
support in CPUid (both AVX and XSAVE bits are set).  But AVX
instructions all yield ILLOPsignals.

Torbjörn
Please encrypt, key id 0xC8601622


More information about the gmp-bugs mailing list