x86 opcode/CPUID/MSR allocations
Jiang, Haochen
haochen.jiang@intel.com
Wed Oct 15 02:25:59 GMT 2025
> From: Christian Ludloff <ludloff@gmail.com>
> Sent: Wednesday, October 15, 2025 5:09 AM
>
> If x86 opcode/CPUID/MSR allocations are not
> of your concern, then you can stop reading.
>
> -------------------- 8< -------------------
>
> I was asked to relay this to binutils/LKML.
>
> As of 2025, the following are in active use
> by a corporate entity other than Intel/AMD.
>
> Any collisions with them should be avoided.
>
> - opcode 0Eh in PM64 - x86 PUSH CS that got
> removed by x86-64 in 2002; not used since
>
> - opcode 0Fh,36h and opcode 0Fh,3Eh - there
> is a historic collision with Cyrix RDSHR,
> but that is not considered to be an issue
>
> - opcode 0Fh,3Ah,E0h...EFh in classic, VEX,
> EVEX, Map3, and Map7 encodings, without a
> prefix, or CS/SS/DS/ES/FS/GS, LOCK, REPE/
> REPNE, or ASIZE/OSIZE/REX (but not REX2!)
> prefixes - a historic collision with K10M
> VCVTFXPNTPD2DQ (at MVEX opcode E6h prefix
> F2) exists but is not considered an issue
>
> - opcode 0Fh,1Eh,/0 - a "hinting NOP" group
>
> - CPUID range E000_xxxxh - unspecified leaf
> return values at this particular time
>
> - MSR range E000_xxxxh - unspecified values
> after RESET - unchanged values after INIT
>
> I have documented them at www.sandpile.org.
>
> -------------------- 8< -------------------
>
I have forwarded this mail to my colleagues in case
there is any mismatch.
Thx,
Haochen
More information about the Binutils
mailing list