MULX on haswell triggers ILLOP
tijl at coosemans.org
Wed Oct 23 18:23:06 UTC 2013
On Wed, 23 Oct 2013 19:42:46 +0200 Torbjorn Granlund wrote:
> Torbjorn Granlund <tg at gmplib.org> writes:
> I have an Intel Haswell system which runs Xen/NetBSD with Debian 7.2,
> NetBSD 6.1.2 and FreeBSD 9.2 guests.
> The FreeBSD guest casts an ILLOP when fed with the new MULX instruction.
> This is a plain integer register based instruction which should require
> zero kernel support.
> MULX is part of the BMI2 extensions.
> The instruction works fine in the other guest systems.
> What is going on? How can FreeBSD reject this instruction?
> I have not tried to run FreeBSD on the bare metal, so I cannot tell if
> BMI2 works as expected there.
> It turns out to be another strike of an FreeBSD m4 eval bug.
> Unfortunately, this means that GMP will not work on Haswell CPUs running
> FreeBSD, where we assemble unsupported instructions using m4 macros.
> That is a workaround for FreeBSD's seriously outdated binutils. Of
> course, we could implement a workaround for the m4 bug, but that
> workaround would be more complex than a bugfix for m4.
> My hopes that FreeBSD will fix this bug are not high, given that it has
> been known for 1.5 years.
A comment on that PR says that it has been fixed in
I don't know if it's feasible to merge this to stable/9. Committer CCed.
More information about the freebsd-questions