Files
Odin/core/rexcode/isa/x86/mnemonics.odin
Brendan Punsky 95df04fbe1 rexcode: re-house ISA packages under core:rexcode/isa/<arch>
Move all ten ISA packages (x86, arm32, arm64, mips, riscv, ppc, ppc_vle,
rsp, mos6502, mos65816) from core/rexcode/<arch> to core/rexcode/isa/<arch>,
so the import pattern is now `import "core:rexcode/isa/x86"`. The shared
core stays at core:rexcode/isa.

Mechanical: relative `import "../isa"` / "../../isa" -> absolute
"core:rexcode/isa" (the only path that survives the move; the "../" and
"../.." self/generated imports move with their packages). build.lua now
builds paths as <root>/isa/<name>; stale `cd <arch>` hints in the verify
tools and the doc.odin paths updated.

WASM stays at core/rexcode/wasm for now -- it is an IR, not an ISA, and
will move under the forthcoming core:rexcode/ir once that layer lands.

All 10 arches gen/builders/check/test green; import core:rexcode/isa/x86
verified working; wasm still compiles.
2026-06-18 19:03:27 -04:00

1295 lines
17 KiB
Odin

// rexcode · Brendan Punsky (dotbmp@github), original author
package rexcode_x86
// =============================================================================
// SECTION: 4. MNEMONICS
// =============================================================================
Mnemonic :: enum u16 {
INVALID = 0,
// -------------------------------------------------------------------------
// SECTION: 4.1 Data Transfer Instructions
// -------------------------------------------------------------------------
MOV,
MOVABS,
MOVZX,
MOVSX,
MOVSXD,
XCHG,
PUSH,
POP,
LEA,
// -------------------------------------------------------------------------
// SECTION: 4.2 Arithmetic Instructions
// -------------------------------------------------------------------------
ADD,
ADC,
SUB,
SBB,
MUL,
IMUL,
DIV,
IDIV,
INC,
DEC,
NEG,
CMP,
// -------------------------------------------------------------------------
// SECTION: 4.3 Logical Instructions
// -------------------------------------------------------------------------
AND,
OR,
XOR,
NOT,
TEST,
// -------------------------------------------------------------------------
// SECTION: 4.4 Shift and Rotate Instructions
// -------------------------------------------------------------------------
SHL,
SHR,
SAR,
ROL,
ROR,
RCL,
RCR,
SHLD,
SHRD,
// -------------------------------------------------------------------------
// SECTION: 4.5 Bit Operations
// -------------------------------------------------------------------------
BT,
BTS,
BTR,
BTC,
BSF,
BSR,
POPCNT,
LZCNT,
TZCNT,
// -------------------------------------------------------------------------
// SECTION: 4.6 Control Flow Instructions
// -------------------------------------------------------------------------
JMP,
JA,
JAE,
JB,
JBE,
JC,
JE,
JZ,
JG,
JGE,
JL,
JLE,
JNA,
JNAE,
JNB,
JNBE,
JNC,
JNE,
JNZ,
JNG,
JNGE,
JNL,
JNLE,
JNO,
JNP,
JNS,
JO,
JP,
JPE,
JPO,
JS,
JCXZ,
JECXZ,
JRCXZ,
LOOP,
LOOPE,
LOOPNE,
CALL,
RET,
IRET,
IRETD,
IRETQ,
INT,
INT3,
INTO,
SYSCALL,
SYSRET,
SYSENTER,
SYSEXIT,
// -------------------------------------------------------------------------
// SECTION: 4.7 Conditional Set Instructions (SETcc)
// -------------------------------------------------------------------------
SETA,
SETAE,
SETB,
SETBE,
SETC,
SETE,
SETG,
SETGE,
SETL,
SETLE,
SETNA,
SETNAE,
SETNB,
SETNBE,
SETNC,
SETNE,
SETNG,
SETNGE,
SETNL,
SETNLE,
SETNO,
SETNP,
SETNS,
SETNZ,
SETO,
SETP,
SETPE,
SETPO,
SETS,
SETZ,
// -------------------------------------------------------------------------
// SECTION: 4.8 Conditional Move Instructions (CMOVcc)
// -------------------------------------------------------------------------
CMOVA,
CMOVAE,
CMOVB,
CMOVBE,
CMOVC,
CMOVE,
CMOVG,
CMOVGE,
CMOVL,
CMOVLE,
CMOVNA,
CMOVNAE,
CMOVNB,
CMOVNBE,
CMOVNC,
CMOVNE,
CMOVNG,
CMOVNGE,
CMOVNL,
CMOVNLE,
CMOVNO,
CMOVNP,
CMOVNS,
CMOVNZ,
CMOVO,
CMOVP,
CMOVPE,
CMOVPO,
CMOVS,
CMOVZ,
// -------------------------------------------------------------------------
// SECTION: 4.9 STring Operations
// -------------------------------------------------------------------------
MOVS,
MOVSB,
MOVSW,
MOVSD,
MOVSQ,
CMPS,
CMPSB,
CMPSW,
CMPSD,
CMPSQ,
SCAS,
SCASB,
SCASW,
SCASD,
SCASQ,
LODS,
LODSB,
LODSW,
LODSD,
LODSQ,
STOS,
STOSB,
STOSW,
STOSD,
STOSQ,
// -------------------------------------------------------------------------
// SECTION: 4.10 Flag Operations
// -------------------------------------------------------------------------
CLC,
STC,
CMC,
CLD,
STD,
CLI,
STI,
LAHF,
SAHF,
PUSHF,
PUSHFD,
PUSHFQ,
POPF,
POPFD,
POPFQ,
// -------------------------------------------------------------------------
// SECTION: 4.11 Miscellaneous Instructions
// -------------------------------------------------------------------------
NOP,
HLT,
WAIT,
LOCK,
UD0,
UD1,
UD2,
CPUID,
RDTSC,
RDTSCP,
RDPMC,
XGETBV,
XSETBV,
// -------------------------------------------------------------------------
// SECTION: 4.12 Conversion Instructions
// -------------------------------------------------------------------------
CBW,
CWDE,
CDQE,
CWD,
CDQ,
CQO,
// -------------------------------------------------------------------------
// SECTION: 4.13 BMI1/BMI2 Instructions
// -------------------------------------------------------------------------
ANDN,
BEXTR,
BLSI,
BLSMSK,
BLSR,
BZHI,
PDEP,
PEXT,
RORX,
SARX,
SHLX,
SHRX,
MULX,
// -------------------------------------------------------------------------
// SECTION: 4.14 ADX Instructions
// -------------------------------------------------------------------------
ADCX,
ADOX,
// -------------------------------------------------------------------------
// SECTION: 4.15 SSE Instructions
// -------------------------------------------------------------------------
MOVAPS,
MOVUPS,
MOVAPD,
MOVUPD,
MOVSS,
MOVSD_SSE, // distinguish from string MOVSD
MOVDQA,
MOVDQU,
MOVQ,
MOVD,
MOVLPS,
MOVHPS,
MOVLPD,
MOVHPD,
MOVLHPS,
MOVHLPS,
MOVMSKPS,
MOVMSKPD,
MOVNTPS,
MOVNTPD,
MOVNTDQ,
MOVNTDQA,
ADDPS,
ADDPD,
ADDSS,
ADDSD,
SUBPS,
SUBPD,
SUBSS,
SUBSD,
MULPS,
MULPD,
MULSS,
MULSD,
DIVPS,
DIVPD,
DIVSS,
DIVSD,
SQRTPS,
SQRTPD,
SQRTSS,
SQRTSD,
RCPPS,
RCPSS,
RSQRTPS,
RSQRTSS,
MAXPS,
MAXPD,
MAXSS,
MAXSD,
MINPS,
MINPD,
MINSS,
MINSD,
ANDPS,
ANDPD,
ANDNPS,
ANDNPD,
ORPS,
ORPD,
XORPS,
XORPD,
CMPPS,
CMPPD,
CMPSS,
CMPSD_SSE,
COMISS,
COMISD,
UCOMISS,
UCOMISD,
SHUFPS,
SHUFPD,
UNPCKLPS,
UNPCKHPS,
UNPCKLPD,
UNPCKHPD,
CVTPS2PD,
CVTPD2PS,
CVTSS2SD,
CVTSD2SS,
CVTPS2DQ,
CVTPD2DQ,
CVTDQ2PS,
CVTDQ2PD,
CVTSS2SI,
CVTSD2SI,
CVTSI2SS,
CVTSI2SD,
CVTTPS2DQ,
CVTTPD2DQ,
CVTTSS2SI,
CVTTSD2SI,
// -------------------------------------------------------------------------
// SECTION: 4.16 SSE2 Integer Instructions
// -------------------------------------------------------------------------
PADDB,
PADDW,
PADDD,
PADDQ,
PSUBB,
PSUBW,
PSUBD,
PSUBQ,
PADDSB,
PADDSW,
PADDUSB,
PADDUSW,
PSUBSB,
PSUBSW,
PSUBUSB,
PSUBUSW,
PMULLW,
PMULHW,
PMULHUW,
PMULUDQ,
PMADDWD,
PAND,
PANDN,
POR,
PXOR,
PSLLW,
PSLLD,
PSLLQ,
PSRLW,
PSRLD,
PSRLQ,
PSRAW,
PSRAD,
PCMPEQB,
PCMPEQW,
PCMPEQD,
PCMPGTB,
PCMPGTW,
PCMPGTD,
PACKSSWB,
PACKSSDW,
PACKUSWB,
PUNPCKLBW,
PUNPCKLWD,
PUNPCKLDQ,
PUNPCKLQDQ,
PUNPCKHBW,
PUNPCKHWD,
PUNPCKHDQ,
PUNPCKHQDQ,
PSHUFD,
PSHUFHW,
PSHUFLW,
PSHUFW,
PEXTRW,
PINSRW,
PMOVMSKB,
PAVGB,
PAVGW,
PMAXUB,
PMAXSW,
PMINUB,
PMINSW,
PSADBW,
MASKMOVDQU,
LFENCE,
SFENCE,
MFENCE,
PAUSE,
CLFLUSH,
// -------------------------------------------------------------------------
// SECTION: 4.17 SSE3/SSSE3 Instructions
// -------------------------------------------------------------------------
ADDSUBPS,
ADDSUBPD,
HADDPS,
HADDPD,
HSUBPS,
HSUBPD,
MOVDDUP,
MOVSLDUP,
MOVSHDUP,
LDDQU,
PSHUFB,
PHADDW,
PHADDD,
PHADDSW,
PHSUBW,
PHSUBD,
PHSUBSW,
PMADDUBSW,
PMULHRSW,
PSIGNB,
PSIGNW,
PSIGND,
PABSB,
PABSW,
PABSD,
PALIGNR,
// -------------------------------------------------------------------------
// SECTION: 4.18 SSE4.1/SSE4.2 Instructions
// -------------------------------------------------------------------------
BLENDPS,
BLENDPD,
BLENDVPS,
BLENDVPD,
PBLENDW,
PBLENDVB,
DPPS,
DPPD,
EXTRACTPS,
INSERTPS,
MPSADBW,
PACKUSDW,
PEXTRB,
PEXTRD,
PEXTRQ,
PHMINPOSUW,
PINSRB,
PINSRD,
PINSRQ,
PMAXSB,
PMAXSD,
PMAXUW,
PMAXUD,
PMINSB,
PMINSD,
PMINUW,
PMINUD,
PMOVSXBW,
PMOVSXBD,
PMOVSXBQ,
PMOVSXWD,
PMOVSXWQ,
PMOVSXDQ,
PMOVZXBW,
PMOVZXBD,
PMOVZXBQ,
PMOVZXWD,
PMOVZXWQ,
PMOVZXDQ,
PMULDQ,
PMULLD,
PTEST,
ROUNDPS,
ROUNDPD,
ROUNDSS,
ROUNDSD,
PCMPEQQ,
CRC32,
PCMPESTRI,
PCMPESTRM,
PCMPISTRI,
PCMPISTRM,
PCMPGTQ,
// -------------------------------------------------------------------------
// SECTION: 4.19 AES-NI and SHA Instructions
// -------------------------------------------------------------------------
PCLMULQDQ,
AESDEC,
AESDECLAST,
AESENC,
AESENCLAST,
AESIMC,
AESKEYGENASSIST,
SHA1MSG1,
SHA1MSG2,
SHA1NEXTE,
SHA1RNDS4,
SHA256MSG1,
SHA256MSG2,
SHA256RNDS2,
// -------------------------------------------------------------------------
// SECTION: 4.20 AVX Instructions
// -------------------------------------------------------------------------
VADDPS,
VADDPD,
VADDSS,
VADDSD,
VSUBPS,
VSUBPD,
VSUBSS,
VSUBSD,
VMULPS,
VMULPD,
VMULSS,
VMULSD,
VDIVPS,
VDIVPD,
VDIVSS,
VDIVSD,
VSQRTPS,
VSQRTPD,
VSQRTSS,
VSQRTSD,
VRCPPS,
VRCPSS,
VRSQRTPS,
VRSQRTSS,
VMAXPS,
VMAXPD,
VMAXSS,
VMAXSD,
VMINPS,
VMINPD,
VMINSS,
VMINSD,
VANDPS,
VANDPD,
VANDNPS,
VANDNPD,
VORPS,
VORPD,
VXORPS,
VXORPD,
VCMPPS,
VCMPPD,
VCMPSS,
VCMPSD,
VCOMISS,
VCOMISD,
VUCOMISS,
VUCOMISD,
VSHUFPS,
VSHUFPD,
VUNPCKLPS,
VUNPCKHPS,
VUNPCKLPD,
VUNPCKHPD,
VBLENDPS,
VBLENDPD,
VBLENDVPS,
VBLENDVPD,
VDPPS,
VDPPD,
VROUNDPS,
VROUNDPD,
VROUNDSS,
VROUNDSD,
VEXTRACTPS,
VINSERTPS,
VMOVAPS,
VMOVUPS,
VMOVAPD,
VMOVUPD,
VMOVSS,
VMOVSD,
VMOVDQA,
VMOVDQU,
VMOVQ,
VMOVD,
VMOVLPS,
VMOVHPS,
VMOVLPD,
VMOVHPD,
VMOVLHPS,
VMOVHLPS,
VMOVMSKPS,
VMOVMSKPD,
VMOVNTPS,
VMOVNTPD,
VMOVNTDQ,
VMOVNTDQA,
VCVTPS2PD,
VCVTPD2PS,
VCVTSS2SD,
VCVTSD2SS,
VCVTPS2DQ,
VCVTPD2DQ,
VCVTDQ2PS,
VCVTDQ2PD,
VCVTSS2SI,
VCVTSD2SI,
VCVTSI2SS,
VCVTSI2SD,
VCVTTPS2DQ,
VCVTTPD2DQ,
VCVTTSS2SI,
VCVTTSD2SI,
VPADDB,
VPADDW,
VPADDD,
VPADDQ,
VPSUBB,
VPSUBW,
VPSUBD,
VPSUBQ,
VPMULLW,
VPMULHW,
VPMULHUW,
VPMULUDQ,
VPMADDWD,
VPAND,
VPANDN,
VPOR,
VPXOR,
VPSLLW,
VPSLLD,
VPSLLQ,
VPSRLW,
VPSRLD,
VPSRLQ,
VPSRAW,
VPSRAD,
VPCMPEQB,
VPCMPEQW,
VPCMPEQD,
VPCMPEQQ,
VPCMPGTB,
VPCMPGTW,
VPCMPGTD,
VPCMPGTQ,
VPACKSSWB,
VPACKSSDW,
VPACKUSWB,
VPACKUSDW,
VPUNPCKLBW,
VPUNPCKLWD,
VPUNPCKLDQ,
VPUNPCKLQDQ,
VPUNPCKHBW,
VPUNPCKHWD,
VPUNPCKHDQ,
VPUNPCKHQDQ,
VPSHUFD,
VPSHUFHW,
VPSHUFLW,
VPEXTRB,
VPEXTRW,
VPEXTRD,
VPEXTRQ,
VPINSRB,
VPINSRW,
VPINSRD,
VPINSRQ,
VPMOVMSKB,
VPTEST,
VPSHUFB,
VPHADDW,
VPHADDD,
VPHADDSW,
VPHSUBW,
VPHSUBD,
VPHSUBSW,
VPMADDUBSW,
VPMULHRSW,
VPSIGNB,
VPSIGNW,
VPSIGND,
VPABSB,
VPABSW,
VPABSD,
VPALIGNR,
VPBLENDW,
VPBLENDVB,
VMPSADBW,
VPHMINPOSUW,
VPMAXSB,
VPMAXSD,
VPMAXUW,
VPMAXUD,
VPMINSB,
VPMINSD,
VPMINUW,
VPMINUD,
VPMOVSXBW,
VPMOVSXBD,
VPMOVSXBQ,
VPMOVSXWD,
VPMOVSXWQ,
VPMOVSXDQ,
VPMOVZXBW,
VPMOVZXBD,
VPMOVZXBQ,
VPMOVZXWD,
VPMOVZXWQ,
VPMOVZXDQ,
VPMULDQ,
VPMULLD,
VMASKMOVDQU,
VPCLMULQDQ,
VAESDEC,
VAESDECLAST,
VAESENC,
VAESENCLAST,
VAESIMC,
VAESKEYGENASSIST,
VBROADCASTSS,
VBROADCASTSD,
VBROADCASTF128,
VEXTRACTF128,
VINSERTF128,
VPERM2F128,
VMASKMOVPS,
VMASKMOVPD,
VTESTPS,
VTESTPD,
VZEROALL,
VZEROUPPER,
// -------------------------------------------------------------------------
// SECTION: 4.21 AVX2 Instructions
// -------------------------------------------------------------------------
VBROADCASTI128,
VEXTRACTI128,
VINSERTI128,
VPERM2I128,
VPERMD,
VPERMPS,
VPERMQ,
VPERMPD,
VPBLENDD,
VPSLLVD,
VPSLLVQ,
VPSRLVD,
VPSRLVQ,
VPSRAVD,
VPMASKMOVD,
VPMASKMOVQ,
VGATHERDPS,
VGATHERDPD,
VGATHERQPS,
VGATHERQPD,
VPGATHERDD,
VPGATHERDQ,
VPGATHERQD,
VPGATHERQQ,
// -------------------------------------------------------------------------
// SECTION: 4.22 FMA Instructions
// -------------------------------------------------------------------------
VFMADD132PS,
VFMADD213PS,
VFMADD231PS,
VFMADD132PD,
VFMADD213PD,
VFMADD231PD,
VFMADD132SS,
VFMADD213SS,
VFMADD231SS,
VFMADD132SD,
VFMADD213SD,
VFMADD231SD,
VFMSUB132PS,
VFMSUB213PS,
VFMSUB231PS,
VFMSUB132PD,
VFMSUB213PD,
VFMSUB231PD,
VFMSUB132SS,
VFMSUB213SS,
VFMSUB231SS,
VFMSUB132SD,
VFMSUB213SD,
VFMSUB231SD,
VFNMADD132PS,
VFNMADD213PS,
VFNMADD231PS,
VFNMADD132PD,
VFNMADD213PD,
VFNMADD231PD,
VFNMADD132SS,
VFNMADD213SS,
VFNMADD231SS,
VFNMADD132SD,
VFNMADD213SD,
VFNMADD231SD,
VFNMSUB132PS,
VFNMSUB213PS,
VFNMSUB231PS,
VFNMSUB132PD,
VFNMSUB213PD,
VFNMSUB231PD,
VFNMSUB132SS,
VFNMSUB213SS,
VFNMSUB231SS,
VFNMSUB132SD,
VFNMSUB213SD,
VFNMSUB231SD,
VFMADDSUB132PS,
VFMADDSUB213PS,
VFMADDSUB231PS,
VFMADDSUB132PD,
VFMADDSUB213PD,
VFMADDSUB231PD,
VFMSUBADD132PS,
VFMSUBADD213PS,
VFMSUBADD231PS,
VFMSUBADD132PD,
VFMSUBADD213PD,
VFMSUBADD231PD,
VCVTPH2PS,
VCVTPS2PH,
// -------------------------------------------------------------------------
// SECTION: 4.23 AVX-512 Instructions
// -------------------------------------------------------------------------
VMOVDQA32,
VMOVDQA64,
VMOVDQU8,
VMOVDQU16,
VMOVDQU32,
VMOVDQU64,
VPBLENDMB,
VPBLENDMW,
VPBLENDMD,
VPBLENDMQ,
VBLENDMPS,
VBLENDMPD,
VPCMPB,
VPCMPUB,
VPCMPW,
VPCMPUW,
VPCMPD,
VPCMPUD,
VPCMPQ,
VPCMPUQ,
VPTESTMB,
VPTESTMW,
VPTESTMD,
VPTESTMQ,
VPTESTNMB,
VPTESTNMW,
VPTESTNMD,
VPTESTNMQ,
VPCOMPRESSD,
VPCOMPRESSQ,
VCOMPRESSPS,
VCOMPRESSPD,
VPEXPANDD,
VPEXPANDQ,
VEXPANDPS,
VEXPANDPD,
VPCONFLICTD,
VPCONFLICTQ,
VPLZCNTD,
VPLZCNTQ,
VPERMI2B,
VPERMI2W,
VPERMI2D,
VPERMI2Q,
VPERMI2PS,
VPERMI2PD,
VPERMT2B,
VPERMT2W,
VPERMT2D,
VPERMT2Q,
VPERMT2PS,
VPERMT2PD,
VPERMB,
VPERMW,
VPMOVB2M,
VPMOVW2M,
VPMOVD2M,
VPMOVQ2M,
VPMOVM2B,
VPMOVM2W,
VPMOVM2D,
VPMOVM2Q,
VPMOVQB,
VPMOVSQB,
VPMOVUSQB,
VPMOVQW,
VPMOVSQW,
VPMOVUSQW,
VPMOVQD,
VPMOVSQD,
VPMOVUSQD,
VPMOVDB,
VPMOVSDB,
VPMOVUSDB,
VPMOVDW,
VPMOVSDW,
VPMOVUSDW,
VPMOVWB,
VPMOVSWB,
VPMOVUSWB,
VPROLD,
VPROLQ,
VPROLVD,
VPROLVQ,
VPRORD,
VPRORQ,
VPRORVD,
VPRORVQ,
VPSCATTERDD,
VPSCATTERDQ,
VPSCATTERQD,
VPSCATTERQQ,
VSCATTERDPS,
VSCATTERDPD,
VSCATTERQPS,
VSCATTERQPD,
VPSRAVQ,
VPSRAVW,
VPSLLVW,
VPSRLVW,
VRANGEPS,
VRANGEPD,
VRANGESS,
VRANGESD,
VREDUCEPS,
VREDUCEPD,
VREDUCESS,
VREDUCESD,
VRNDSCALEPS,
VRNDSCALEPD,
VRNDSCALESS,
VRNDSCALESD,
VRSQRT14PS,
VRSQRT14PD,
VRSQRT14SS,
VRSQRT14SD,
VRCP14PS,
VRCP14PD,
VRCP14SS,
VRCP14SD,
VSCALEFPS,
VSCALEFPD,
VSCALEFSS,
VSCALEFSD,
VGETEXPPS,
VGETEXPPD,
VGETEXPSS,
VGETEXPSD,
VGETMANTPS,
VGETMANTPD,
VGETMANTSS,
VGETMANTSD,
VFIXUPIMMPS,
VFIXUPIMMPD,
VFIXUPIMMSS,
VFIXUPIMMSD,
VFPCLASSPS,
VFPCLASSPD,
VFPCLASSSS,
VFPCLASSSD,
VALIGNQ,
VALIGND,
VDBPSADBW,
VPTERNLOGD,
VPTERNLOGQ,
VPMULTISHIFTQB,
KADDW,
KADDB,
KADDQ,
KADDD,
KANDW,
KANDB,
KANDQ,
KANDD,
KANDNW,
KANDNB,
KANDNQ,
KANDND,
KMOVW,
KMOVB,
KMOVQ,
KMOVD,
KNOTW,
KNOTB,
KNOTQ,
KNOTD,
KORW,
KORB,
KORQ,
KORD,
KORTESTW,
KORTESTB,
KORTESTQ,
KORTESTD,
KSHIFTLW,
KSHIFTLB,
KSHIFTLQ,
KSHIFTLD,
KSHIFTRW,
KSHIFTRB,
KSHIFTRQ,
KSHIFTRD,
KTESTW,
KTESTB,
KTESTQ,
KTESTD,
KUNPCKBW,
KUNPCKWD,
KUNPCKDQ,
KXNORW,
KXNORB,
KXNORQ,
KXNORD,
KXORW,
KXORB,
KXORQ,
KXORD,
// -------------------------------------------------------------------------
// SECTION: 4.24 x87 FPU Instructions
// -------------------------------------------------------------------------
FADD,
FADDP,
FIADD,
FSUB,
FSUBP,
FISUB,
FSUBR,
FSUBRP,
FISUBR,
FMUL,
FMULP,
FIMUL,
FDIV,
FDIVP,
FIDIV,
FDIVR,
FDIVRP,
FIDIVR,
FSQRT,
FABS,
FCHS,
FPREM,
FPREM1,
FRNDINT,
FSCALE,
FXTRACT,
FXAM,
FLD,
FILD,
FBLD,
FST,
FSTP,
FIST,
FISTP,
FISTTP,
FBSTP,
FXCH,
FCMOVB,
FCMOVE,
FCMOVBE,
FCMOVU,
FCMOVNB,
FCMOVNE,
FCMOVNBE,
FCMOVNU,
FCOM,
FCOMP,
FCOMPP,
FICOM,
FICOMP,
FCOMI,
FCOMIP,
FUCOMI,
FUCOMIP,
FUCOM,
FUCOMP,
FUCOMPP,
FTST,
FLDZ,
FLD1,
FLDPI,
FLDL2T,
FLDL2E,
FLDLG2,
FLDLN2,
FSIN,
FCOS,
FSINCOS,
FPTAN,
FPATAN,
F2XM1,
FYL2X,
FYL2XP1,
FINIT,
FNINIT,
FINCSTP,
FDECSTP,
FFREE,
FFREEP,
FNOP,
FWAIT,
FCLEX,
FNCLEX,
FSTCW,
FNSTCW,
FLDCW,
FSTENV,
FNSTENV,
FLDENV,
FSAVE,
FNSAVE,
FRSTOR,
FSTSW,
FNSTSW,
FXSAVE,
FXSAVE64,
FXRSTOR,
FXRSTOR64,
// -------------------------------------------------------------------------
// SECTION: 4.25 System Instructions
// -------------------------------------------------------------------------
LGDT,
SGDT,
LIDT,
SIDT,
LLDT,
SLDT,
LTR,
STR,
LMSW,
SMSW,
CLTS,
ARPL,
LAR,
LSL,
VERR,
VERW,
INVD,
WBINVD,
INVLPG,
INVPCID,
RSM,
RDMSR,
WRMSR,
// -------------------------------------------------------------------------
// SECTION: 4.26 VMX Instructions
// -------------------------------------------------------------------------
VMCALL,
VMLAUNCH,
VMRESUME,
VMXOFF,
VMXON,
VMCLEAR,
VMPTRLD,
VMPTRST,
VMREAD,
VMWRITE,
VMFUNC,
INVEPT,
INVVPID,
// -------------------------------------------------------------------------
// SECTION: 4.27 Miscellaneous Extensions
// -------------------------------------------------------------------------
ENCLS,
ENCLU,
ENCLV,
RDPKRU,
WRPKRU,
INCSSPD,
INCSSPQ,
RDSSPD,
RDSSPQ,
SAVEPREVSSP,
RSTORSSP,
WRSSD,
WRSSQ,
WRUSSD,
WRUSSQ,
SETSSBSY,
CLRSSBSY,
ENDBR64,
ENDBR32,
XSAVE,
XSAVE64,
XRSTOR,
XRSTOR64,
XSAVEOPT,
XSAVEOPT64,
XSAVEC,
XSAVEC64,
XSAVES,
XSAVES64,
XRSTORS,
XRSTORS64,
PREFETCHT0,
PREFETCHT1,
PREFETCHT2,
PREFETCHNTA,
PREFETCHW,
CLFLUSHOPT,
CLWB,
CLDEMOTE,
BSWAP,
CMPXCHG,
CMPXCHG8B,
CMPXCHG16B,
XADD,
BOUND,
ENTER,
LEAVE,
XLAT,
XLATB,
MOVBE,
RDRAND,
RDSEED,
}