On Tue, 25 Jun 2019 at 12:25, Mike Larkin <[email protected]> wrote:
> On Mon, Jun 24, 2019 at 07:16:20PM -0700, [email protected] wrote: > > > According to objdump -d, that's: > > f7 04 25 00 d3 d1 81 testl $0x1000,0xffffffff81d1d300 > > 00 10 00 00 > > 74 08 je <forward some> > > f3 90 pause > > > > That's testing the LAPIC ICRLO, a memory-mapped register. Previously, > the > > compiler generated code like this: > > > > 8b 0c 25 00 63 cf 81 mov 0xffffffff81cf6300,%ecx > > f7 c1 00 10 00 00 test $0x1000,%ecx > > 74 09 je <forward some> > > f3 90 pause > > > > where it loaded the LAPIC register into %ecx and then tested that value; > > now it combines them and does a direct test. Congrats, that's legal > > according to Intel (reportedly, Windows will use SSE(!) instructions to > > read LAPIC registers), so this seems like a bug in Bhyve. > > > Yep, please report it to the bhyve guys. > > Bug report raised at FreeBSD. For reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238794 Thanks for the quick response. Cheers!
