x86 WBINVD prefix allocations

Jiang, Haochen haochen.jiang@intel.com
Wed Sep 2 03:31:04 GMT 2026


> From: Christian Ludloff <ludloff@gmail.com>
> Sent: Tuesday, September 1, 2026 5:54 PM
> 
> On Tue, Sep 1, 2026 at 1:32 AM Jan Beulich <jbeulich@suse.com> wrote:
> > >   0x67 = no CODE hint => skip L0i/L1i cache
> > >   0x66 = no DATA hint => skip L0d/L1d cache
> > >   0xF3 = no INVD hint => skip invalidations
> > >   0xF2 = no LLC  hint => skip LLC cache
> >
> > I view (ab)use of 0x67 as an operation modifying prefix as problematic.
> 
> In an increasingly 64-bit world the classic 0x67
> functionality is becoming... much less relevant.
> 
> > >   0x26 = ES implementation-specific hint
> > >   0x2E = CS implementation-specific hint
> > >   0x36 = SS implementation-specific hint
> > >   0x3E = DS implementation-specific hint
> > >   0x64 = FS implementation-specific hint
> > >   0x65 = GS implementation-specific hint
> >
> > ... allowing combinations of these to mean anything else than "last one
> > takes effect" is pretty much against how x86 has been working. In gas
> > I think you couldn't even encode multiple of them "normally", i.e. without
> > resorting to .byte or alike.
> 
> WBINVD is privileged – so not an app problem.

I get your meaning for privileged, which means user are using them
on purpose.

Do you mean that in your scenario, you will always use .byte to skip
assembler?

And I am still expecting when the entity will be revealed, with
documentation.

Thx,
Haochen


More information about the Binutils mailing list