Mulx: Illegal Instruction

Paul Peet peetpaul69 at
Tue Dec 1 17:50:41 UTC 2015


Distro: Arch Linux (x86_64)
CPU: Intel Pentium G4400 (Skylake)
Kernel: Linux Kernel 4.2.5-1-ARCH
GMP-Version: 6.1.0
GCC: 5.2.0

I discovered this bug while trying to compiling the linux kernel but
it ultimately failed.
The issue which occured was an SIGILL one. I traced down the issue
back to the assembly code and the result was that
it was executing a mulx instruction which apparently is invalid here
on my cpu (Pentium G4400).
A member suggested that it might be an issue with the detection logic in gmp.

For more detailed overview of the issue:

Disassembly of the illegal instruction:
Dump of assembler code for function __gmpn_sqr_basecase_coreibwl:
   0x00007ffff7708000 <+0>: cmp    $0x2,%rdx
   0x00007ffff7708004 <+4>: jae    0x7ffff7708016
   0x00007ffff7708006 <+6>: mov    (%rsi),%rdx
=> 0x00007ffff7708009 <+9>: mulx   %rdx,%rax,%rdx

More information about the gmp-bugs mailing list