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!

Reply via email to