X86 Backend [¶]
X86/X64 backend.
Namespace
- x86 - x86 namespace provides support for X86/X64 code generation.
Emitters
- x86::Assembler - X86/X64 assembler (must read, provides examples).
- x86::Builder - X86/X64 builder.
- x86::Compiler - X86/X64 compiler.
- x86::Emitter - X86/X64 emitter (abstract).
Supported Instructions
- Emitters:
- x86::EmitterExplicitT - Provides all instructions that use explicit operands, provides also utility functions. The member functions provided are part of all X86 emitters.
- x86::EmitterImplicitT - Provides all instructions that use implicit operands, these cannot be used with x86::Compiler.
- Instruction representation:
- x86::Inst::Id - Provides instruction identifiers of X86|X86_64 architecture.
- InstOptions - Provides generic and X86|X86_64 specific options.
Register Operands
- x86::Gp - General purpose register (abstracts 8-bit, 16-bit, 32-bit, and 64-bit GP registers).
- x86::Vec - Vector (SIMD) register (abstracts XMM, YMM, and ZMM registers).
- x86::Mm - 64-bit MMX register.
- x86::St - 80-bit FPU register.
- x86::KReg - opmask registers (AVX512+).
- x86::SReg - segment register.
- x86::CReg - control register.
- x86::DReg - debug register.
- x86::Bnd - bound register (discontinued).
- x86::Rip - relative instruction pointer.
Memory Operands
- x86::Mem - X86/X64 memory operand that provides support for all X86 and X64 addressing features including absolute addresses, index scales, and segment override prefixes.
Status and Control Words
- x86::FpuStatusWord - FPU status word bits / decomposition.
- x86::FpuControlWord - FPU control word bits / decomposition.
Predicates (immediate values)
- x86::CmpImm -
CMP[PD|PS|SD|SS]
predicate (SSE+). - x86::PCmpStrImm -
[V]PCMP[I|E]STR[I|M]
predicate (SSE4.1+, AVX+). - x86::RoundImm -
[V]ROUND[PD|PS|SD|SS]
predicate (SSE+, AVX+). - x86::VCmpImm -
VCMP[PD|PS|SD|SS]
predicate (AVX+). - x86::VFixupImm -
VFIXUPIMM[PD|PS|SD|SS]
predicate (AVX512+). - x86::VFPClassImm -
VFPCLASS[PD|PS|SD|SS]
predicate (AVX512+). - x86::VGetMantImm -
VGETMANT[PD|PS|SD|SS]
predicate (AVX512+). - x86::VPCmpImm -
VPCMP[U][B|W|D|Q]
predicate (AVX512+). - x86::VPComImm -
VPCOM[U][B|W|D|Q]
predicate (XOP). - x86::VRangeImm -
VRANGE[PD|PS|SD|SS]
predicate (AVX512+). - x86::VReduceImm -
REDUCE[PD|PS|SD|SS]
predicate (AVX512+). - x86::TLogImm -
VPTERNLOG[D|Q]
predicate and operations (AVX512+).