Documentation ¶
Overview ¶
package x64 provides an x86-64 instruction encoder in Go
usage example:
package example import ( "fmt" "os" "golang.org/x/sys/unix" // Importing everything from the package into the current scope // makes for less noise: . "github.com/wdamron/x64" ) const ( ANON_PRIVATE = unix.MAP_ANON|unix.MAP_PRIVATE READ_WRITE = unix.PROT_READ|unix.PROT_WRITE READ_EXEC = unix.PROT_READ|unix.PROT_EXEC ) func CompileSumFunc() (func(a, b int) int, error) { mem, err := unix.Mmap(-1, 0, os.Getpagesize(), READ_WRITE, ANON_PRIVATE) if err != nil { return nil, fmt.Errorf("sys/unix.Mmap failed: %v", err) } asm := NewAssembler(mem) // Note: the call frame (arguments and returned value) starts at [RSP+8] // The return address will be stored at [RSP]. asm.Inst(MOV, RAX, Mem{Base: RSP, Disp: Rel8(8)}) // RAX := a+0(FP) asm.Inst(MOV, RBX, Mem{Base: RSP, Disp: Rel8(16)}) // RBX := b+8(FP) asm.Inst(ADD, RAX, RBX) // RAX += RBX asm.Inst(MOV, Mem{Base: RSP, Disp: Rel8(24)}, RAX) // ret+16(FP) := RAX asm.Inst(RET) // return if asm.Err() != nil { _ = unix.Munmap(mem) return nil, asm.Err() } if err := unix.Mprotect(mem, READ_EXEC); err != nil { _ = unix.Munmap(mem) return nil, fmt.Errorf("sys/unix.Mprotect failed: %v", err) } sum := (func(a, b int) int)(nil) // placeholder value // Assign the address of the assembled/executable code to the code-pointer // within the placeholder function-value: if err := SetFunctionCode(&sum, mem); err != nil { _ = unix.Munmap(mem) return nil, err } return sum, nil }
Index ¶
- Constants
- Variables
- func SetFunctionCode(dstAddr interface{}, executable []byte) error
- type Arg
- type Assembler
- func (a *Assembler) AlignPC(pow2 uint8)
- func (a *Assembler) Code() []byte
- func (a *Assembler) DisableFeature(feature Feature)
- func (a *Assembler) EnableFeature(feature Feature)
- func (a *Assembler) Err() error
- func (a *Assembler) Features() Feature
- func (a *Assembler) Finalize() error
- func (a *Assembler) G(r Reg) error
- func (a *Assembler) GetLabelPC(label LabelArg) uint32
- func (a *Assembler) Inst(inst Inst, args ...Arg) error
- func (a *Assembler) InstFrom(matcher *InstMatcher) error
- func (a *Assembler) Lock(inst Inst, args ...Arg) error
- func (a *Assembler) MI(inst Inst, dst Mem, imm ImmArg) error
- func (a *Assembler) MR(inst Inst, dst Mem, src Reg) error
- func (a *Assembler) MRI(inst Inst, dst Mem, src Reg, imm ImmArg) error
- func (a *Assembler) NewLabel() Label
- func (a *Assembler) Nop(length uint8)
- func (a *Assembler) PC() uint32
- func (a *Assembler) RI(inst Inst, dst Reg, imm ImmArg) error
- func (a *Assembler) RM(inst Inst, dst Reg, src Mem) error
- func (a *Assembler) RMI(inst Inst, dst Reg, src Mem, imm ImmArg) error
- func (a *Assembler) RR(inst Inst, dst, src Reg) error
- func (a *Assembler) RRI(inst Inst, dst, src Reg, imm ImmArg) error
- func (a *Assembler) Raw(data []byte)
- func (a *Assembler) Raw16(i int16)
- func (a *Assembler) Raw32(i int32)
- func (a *Assembler) Raw64(i int64)
- func (a *Assembler) RawByte(b byte)
- func (a *Assembler) Rep(inst Inst, args ...Arg) error
- func (a *Assembler) Repe(inst Inst, args ...Arg) error
- func (a *Assembler) Repne(inst Inst, args ...Arg) error
- func (a *Assembler) Repnz(inst Inst, args ...Arg) error
- func (a *Assembler) Repz(inst Inst, args ...Arg) error
- func (a *Assembler) Reset(buf []byte)
- func (a *Assembler) SG(r, g Reg) error
- func (a *Assembler) SetFeatures(enabledFeatures Feature)
- func (a *Assembler) SetLabel(label LabelArg)
- func (a *Assembler) SetLabelPC(label LabelArg, pc uint32)
- func (a *Assembler) SetPC(pc uint32)
- type ConditionCode
- type DispArg
- type Imm16
- type Imm32
- type Imm64
- type Imm8
- type ImmArg
- type Inst
- type InstMatcher
- func (m *InstMatcher) AddrSize() int
- func (m *InstMatcher) AllMatches(inst Inst, args ...Arg) ([]InstMatcher, error)
- func (m *InstMatcher) DisableFeature(feature feats.Feature)
- func (m *InstMatcher) EnableFeature(feature feats.Feature)
- func (m *InstMatcher) EncodingId() uint
- func (m *InstMatcher) Features() feats.Feature
- func (m *InstMatcher) HasOpcodeInImmediate() bool
- func (m *InstMatcher) HasOpcodeRegArg() bool
- func (m *InstMatcher) InstFeatures() feats.Feature
- func (m *InstMatcher) IsVEX() bool
- func (m *InstMatcher) IsXOP() bool
- func (m *InstMatcher) MI(inst Inst, dst Mem, imm ImmArg) error
- func (m *InstMatcher) MR(inst Inst, dst Mem, src Reg) error
- func (m *InstMatcher) MRI(inst Inst, dst Mem, src Reg, imm ImmArg) error
- func (m *InstMatcher) Match(inst Inst, args ...Arg) error
- func (m *InstMatcher) Opcode() []byte
- func (m *InstMatcher) OperandSize() int
- func (m *InstMatcher) RI(inst Inst, dst Reg, imm ImmArg) error
- func (m *InstMatcher) RM(inst Inst, dst Reg, src Mem) error
- func (m *InstMatcher) RMI(inst Inst, dst Reg, src Mem, imm ImmArg) error
- func (m *InstMatcher) RR(inst Inst, dst, src Reg) error
- func (m *InstMatcher) RRI(inst Inst, dst, src Reg, imm ImmArg) error
- func (m *InstMatcher) SetFeatures(enabledFeatures feats.Feature)
- type Label
- type Label16
- type Label32
- type Label8
- type LabelArg
- type LabelDisp
- type Mem
- type Reg
- type RegArg
- type Rel16
- type Rel32
- type Rel8
- type RelArg
Constants ¶
const ( REG_LEGACY = iota REG_RIP // IP, EIP, RIP REG_HIGHBYTE // AH, CH, DH, BH REG_FP REG_MMX REG_XMM REG_YMM REG_SEGMENT REG_CONTROL REG_DEBUG )
Register families
Variables ¶
var ErrNoMatch = errors.New("No matching instruction-encoding was found")
ErrNoMatch will be returned if no matching instruction-encoding is found while encoding an instruction.
Functions ¶
func SetFunctionCode ¶
Set the executable code for dstAddr. This function is entirely unsafe.
dstAddr must be a pointer to a function value. executable must be marked with PROT_EXEC privileges through a MPROTECT system-call.
Types ¶
type Arg ¶
type Arg interface {
// contains filtered or unexported methods
}
Arg represents an instruction argument.
type Assembler ¶
type Assembler struct {
// contains filtered or unexported fields
}
An assembler encodes instructions into a byte slice. Label references are supported, though Finalize must be called to finalize all existing (unprocessed) relative displacements.
When re-using an assembler after encoding a set of instructions, the Reset method must be called beforehand.
func NewAssembler ¶
Create a new Assembler for instruction encoding. Output will be encoded to buf. If the encoded output exceeds the length of buf, a new slice will be allocated.
All CPU features will be enabled by default, for instruction-matching.
func (*Assembler) AlignPC ¶
Align the program counter to a power-of-2 offset. Intermediate space will be filled with NOPs.
func (*Assembler) Code ¶
Get the current encoded instructions. This method may be called multiple times and does not affect the underlying code buffer.
func (*Assembler) DisableFeature ¶
func (a *Assembler) DisableFeature(feature Feature)
Control the allowable CPU feature-set for instruction-matching. This will not affect instructions which have already been encoded.
See package x64/feats for all available CPU features.
func (*Assembler) EnableFeature ¶
func (a *Assembler) EnableFeature(feature Feature)
Control the allowable CPU feature-set for instruction-matching. This will not affect instructions which have already been encoded.
See package x64/feats for all available CPU features.
func (*Assembler) Err ¶
Get the first error which occured while encoding or finalizing instructions, since the assembler was last reset (or initialized, if the assembler has not been reset).
func (*Assembler) Features ¶
func (a *Assembler) Features() Feature
Get the current, allowable CPU feature-set for instruction-matching.
See package x64/feats for all available CPU features.
func (*Assembler) Finalize ¶
Process all label references. Each label reference will have its displacement patched with the relative offset to the label (optionally with additional displacement for LabelDisp arguments).
func (*Assembler) G ¶
Encode an instruction to load the address of the current goroutine into a register. The instruction will move the address from [REG_TLS:-8] to r.
func (*Assembler) GetLabelPC ¶
Get the PC currently assigned to the label.
func (*Assembler) Inst ¶
Encode inst with args to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) InstFrom ¶
func (a *Assembler) InstFrom(matcher *InstMatcher) error
Encode a previously matched instruction to the encoding buffer.
func (*Assembler) Lock ¶
Encode inst with args to the encoding buffer, prefixed with LOCK. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) MI ¶
Encode inst with a memory destination and immediate to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) MR ¶
Encode inst with a memory destination and register source to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) MRI ¶
Encode inst with a memory destination, register source, and immediate to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) NewLabel ¶
Create a new label at the current PC. To update the PC assigned to the label, call the SetLabel method with the label when the PC reaches the desired offset -- this must be done before calling the Finalize method.
func (*Assembler) PC ¶
Get the current program counter (i.e. number of bytes written to the encoding buffer).
func (*Assembler) RI ¶
Encode inst with a register destination and immediate to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) RM ¶
Encode inst with a register destination and memory source to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) RMI ¶
Encode inst with a register destination, memory source, and immediate to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) RR ¶
Encode inst with a register destination and register source to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) RRI ¶
Encode inst with a register destination, register source, and immediate to the encoding buffer. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Rep ¶
Encode inst with args to the encoding buffer, prefixed with REP. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Repe ¶
Encode inst with args to the encoding buffer, prefixed with REPE. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Repne ¶
Encode inst with args to the encoding buffer, prefixed with REPNE. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Repnz ¶
Encode inst with args to the encoding buffer, prefixed with REPNZ. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Repz ¶
Encode inst with args to the encoding buffer, prefixed with REPZ. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*Assembler) Reset ¶
Reset an assembler before encoding a new set of instructions. All existing labels will be cleared, the error will be cleared if one exists, and the PC will be reset to 0. The current set of enabled CPU features will be retained.
If buf is not nil, the assembler's buffer will be replaced with buf; otherwise, the assembler's buffer will be reset and possibly resized.
func (*Assembler) SG ¶
Encode an instruction to load the stack-guard address for the current goroutine into a register.
r will contain the stack-guard address for the current goroutine after the instruction executes.
g must be a register containing the address of the current goroutine.
func (*Assembler) SetFeatures ¶
func (a *Assembler) SetFeatures(enabledFeatures Feature)
Restrict the allowable CPU feature-set for instruction-matching. This will not affect instructions which have already been encoded.
See package x64/feats for all available CPU features.
func (*Assembler) SetLabelPC ¶
Update the PC assigned to the label using the given PC. Finalize must be called to update existing label references after labels have been reassigned to new offsets, though Finalize only needs to be called after a set of updates (i.e. not after each update).
type ConditionCode ¶
type ConditionCode byte
const ( CCUnsignedLT ConditionCode = 2 CCUnsignedGTE ConditionCode = 3 CCEq ConditionCode = 4 CCNeq ConditionCode = 5 CCUnsignedLTE ConditionCode = 6 CCUnsignedGT ConditionCode = 7 CCSignedLT ConditionCode = 0xC CCSignedGTE ConditionCode = 0xD CCSignedLTE ConditionCode = 0xE CCSignedGT ConditionCode = 0xF )
type DispArg ¶
DispArg represents a label reference (with or without additional displacement) or a relative displacement.
Any Rel8, Rel16, Rel32, Label, Label8, Label16, Label32, or LabelDisp value implements DispArg.
type ImmArg ¶
ImmArg represents an immediate argument.
Any Imm8, Imm16, Imm32, or Imm64 value implements ImmArg.
type Inst ¶
type Inst uint32
Inst represents an instruction-mnemonic.
[0..12] bits are a uint16 offset into an internal array of instruction-encodings [16..20] bits specify the number of supported encodings for the instruction [21..31] bits identify the unique mnemonic
const ( ADC Inst = 1<<21 | 14<<16 | 0 ADCX Inst = 2<<21 | 1<<16 | 14 ADD Inst = 3<<21 | 14<<16 | 15 ADDSD Inst = 4<<21 | 2<<16 | 29 ADDSS Inst = 5<<21 | 2<<16 | 31 ADOX Inst = 6<<21 | 1<<16 | 33 AND Inst = 7<<21 | 14<<16 | 34 ANDN Inst = 8<<21 | 1<<16 | 48 BEXTR Inst = 9<<21 | 2<<16 | 49 BLCFILL Inst = 10<<21 | 1<<16 | 51 BLCI Inst = 11<<21 | 1<<16 | 52 BLCIC Inst = 12<<21 | 1<<16 | 53 BLCMSK Inst = 13<<21 | 1<<16 | 54 BLCS Inst = 14<<21 | 1<<16 | 55 BLSFILL Inst = 15<<21 | 1<<16 | 56 BLSI Inst = 16<<21 | 1<<16 | 57 BLSIC Inst = 17<<21 | 1<<16 | 58 BLSMSK Inst = 18<<21 | 1<<16 | 59 BLSR Inst = 19<<21 | 1<<16 | 60 BNDCL Inst = 20<<21 | 2<<16 | 61 BNDCN Inst = 21<<21 | 2<<16 | 63 BNDCU Inst = 22<<21 | 2<<16 | 65 BNDLDX Inst = 23<<21 | 1<<16 | 67 BNDMK Inst = 24<<21 | 1<<16 | 68 BNDMOV Inst = 25<<21 | 4<<16 | 69 BNDSTX Inst = 26<<21 | 1<<16 | 73 BSF Inst = 27<<21 | 1<<16 | 74 BSR Inst = 28<<21 | 1<<16 | 75 BSWAP Inst = 29<<21 | 1<<16 | 76 BT Inst = 30<<21 | 2<<16 | 77 BTC Inst = 31<<21 | 4<<16 | 79 BTR Inst = 32<<21 | 4<<16 | 83 BTS Inst = 33<<21 | 4<<16 | 87 BZHI Inst = 34<<21 | 1<<16 | 91 CALL Inst = 35<<21 | 2<<16 | 92 CBW Inst = 36<<21 | 1<<16 | 94 CDQ Inst = 37<<21 | 1<<16 | 95 CDQE Inst = 38<<21 | 1<<16 | 96 CLAC Inst = 39<<21 | 1<<16 | 97 CLC Inst = 40<<21 | 1<<16 | 98 CLD Inst = 41<<21 | 1<<16 | 99 CLFLUSH Inst = 42<<21 | 1<<16 | 100 CLGI Inst = 43<<21 | 1<<16 | 101 CLI Inst = 44<<21 | 1<<16 | 102 CLTS Inst = 45<<21 | 1<<16 | 103 CLZERO Inst = 46<<21 | 1<<16 | 104 CMC Inst = 47<<21 | 1<<16 | 105 CMOVA Inst = 48<<21 | 1<<16 | 106 CMOVAE Inst = 49<<21 | 1<<16 | 107 CMOVB Inst = 50<<21 | 1<<16 | 108 CMOVBE Inst = 51<<21 | 1<<16 | 109 CMOVC Inst = 52<<21 | 1<<16 | 110 CMOVE Inst = 53<<21 | 1<<16 | 111 CMOVG Inst = 54<<21 | 1<<16 | 112 CMOVGE Inst = 55<<21 | 1<<16 | 113 CMOVL Inst = 56<<21 | 1<<16 | 114 CMOVLE Inst = 57<<21 | 1<<16 | 115 CMOVNA Inst = 58<<21 | 1<<16 | 116 CMOVNAE Inst = 59<<21 | 1<<16 | 117 CMOVNB Inst = 60<<21 | 1<<16 | 118 CMOVNBE Inst = 61<<21 | 1<<16 | 119 CMOVNC Inst = 62<<21 | 1<<16 | 120 CMOVNE Inst = 63<<21 | 1<<16 | 121 CMOVNG Inst = 64<<21 | 1<<16 | 122 CMOVNGE Inst = 65<<21 | 1<<16 | 123 CMOVNL Inst = 66<<21 | 1<<16 | 124 CMOVNLE Inst = 67<<21 | 1<<16 | 125 CMOVNO Inst = 68<<21 | 1<<16 | 126 CMOVNP Inst = 69<<21 | 1<<16 | 127 CMOVNS Inst = 70<<21 | 1<<16 | 128 CMOVNZ Inst = 71<<21 | 1<<16 | 129 CMOVO Inst = 72<<21 | 1<<16 | 130 CMOVP Inst = 73<<21 | 1<<16 | 131 CMOVPE Inst = 74<<21 | 1<<16 | 132 CMOVPO Inst = 75<<21 | 1<<16 | 133 CMOVS Inst = 76<<21 | 1<<16 | 134 CMOVZ Inst = 77<<21 | 1<<16 | 135 CMP Inst = 78<<21 | 9<<16 | 136 CMPEQSD Inst = 79<<21 | 2<<16 | 145 CMPEQSS Inst = 80<<21 | 2<<16 | 147 CMPLESD Inst = 81<<21 | 2<<16 | 149 CMPLESS Inst = 82<<21 | 2<<16 | 151 CMPLTSD Inst = 83<<21 | 2<<16 | 153 CMPLTSS Inst = 84<<21 | 2<<16 | 155 CMPNEQSD Inst = 85<<21 | 2<<16 | 157 CMPNEQSS Inst = 86<<21 | 2<<16 | 159 CMPNLESD Inst = 87<<21 | 2<<16 | 161 CMPNLESS Inst = 88<<21 | 2<<16 | 163 CMPNLTSD Inst = 89<<21 | 2<<16 | 165 CMPNLTSS Inst = 90<<21 | 2<<16 | 167 CMPORDSD Inst = 91<<21 | 2<<16 | 169 CMPORDSS Inst = 92<<21 | 2<<16 | 171 CMPSB Inst = 93<<21 | 1<<16 | 173 CMPSD Inst = 94<<21 | 2<<16 | 174 CMPSQ Inst = 95<<21 | 1<<16 | 176 CMPSS Inst = 96<<21 | 2<<16 | 177 CMPSW Inst = 97<<21 | 1<<16 | 179 CMPUNORDSD Inst = 98<<21 | 2<<16 | 180 CMPUNORDSS Inst = 99<<21 | 2<<16 | 182 CMPXCHG Inst = 100<<21 | 4<<16 | 184 CMPXCHG16B Inst = 101<<21 | 1<<16 | 188 CMPXCHG8B Inst = 102<<21 | 1<<16 | 189 COMISD Inst = 103<<21 | 2<<16 | 190 COMISS Inst = 104<<21 | 2<<16 | 192 CPUID Inst = 105<<21 | 1<<16 | 194 CQO Inst = 106<<21 | 1<<16 | 195 CRC32 Inst = 107<<21 | 3<<16 | 196 CVTPD2DQ Inst = 108<<21 | 1<<16 | 199 CVTPD2PI Inst = 109<<21 | 1<<16 | 200 CVTPS2DQ Inst = 110<<21 | 1<<16 | 201 CVTPS2PI Inst = 111<<21 | 2<<16 | 202 CVTSD2SI Inst = 112<<21 | 4<<16 | 204 CVTSD2SS Inst = 113<<21 | 2<<16 | 208 CVTSI2SD Inst = 114<<21 | 2<<16 | 210 CVTSI2SS Inst = 115<<21 | 2<<16 | 212 CVTSS2SD Inst = 116<<21 | 2<<16 | 214 CVTSS2SI Inst = 117<<21 | 4<<16 | 216 CVTTPD2DQ Inst = 118<<21 | 1<<16 | 220 CVTTPD2PI Inst = 119<<21 | 1<<16 | 221 CVTTPS2DQ Inst = 120<<21 | 1<<16 | 222 CVTTPS2PI Inst = 121<<21 | 2<<16 | 223 CVTTSD2SI Inst = 122<<21 | 4<<16 | 225 CVTTSS2SI Inst = 123<<21 | 4<<16 | 229 CWD Inst = 124<<21 | 1<<16 | 233 CWDE Inst = 125<<21 | 1<<16 | 234 DEC Inst = 126<<21 | 4<<16 | 235 DIV Inst = 127<<21 | 2<<16 | 239 DIVSD Inst = 128<<21 | 2<<16 | 241 DIVSS Inst = 129<<21 | 2<<16 | 243 EMMS Inst = 130<<21 | 1<<16 | 245 ENTER Inst = 131<<21 | 1<<16 | 246 EXTRQ Inst = 132<<21 | 2<<16 | 247 GETSEC Inst = 133<<21 | 1<<16 | 249 HLT Inst = 134<<21 | 1<<16 | 250 ICEBP Inst = 135<<21 | 1<<16 | 251 IDIV Inst = 136<<21 | 2<<16 | 252 IMUL Inst = 137<<21 | 5<<16 | 254 IN Inst = 138<<21 | 6<<16 | 259 INC Inst = 139<<21 | 4<<16 | 265 INSB Inst = 140<<21 | 1<<16 | 269 INSD Inst = 141<<21 | 1<<16 | 270 INSERTQ Inst = 142<<21 | 2<<16 | 271 INSW Inst = 143<<21 | 1<<16 | 273 INT Inst = 144<<21 | 1<<16 | 274 INT01 Inst = 145<<21 | 1<<16 | 275 INT03 Inst = 146<<21 | 1<<16 | 276 INT1 Inst = 147<<21 | 1<<16 | 277 INT3 Inst = 148<<21 | 1<<16 | 278 INVD Inst = 149<<21 | 1<<16 | 279 INVEPT Inst = 150<<21 | 1<<16 | 280 INVLPG Inst = 151<<21 | 1<<16 | 281 INVLPGA Inst = 152<<21 | 2<<16 | 282 INVVPID Inst = 153<<21 | 1<<16 | 284 IRET Inst = 154<<21 | 1<<16 | 285 IRETD Inst = 155<<21 | 1<<16 | 286 IRETQ Inst = 156<<21 | 1<<16 | 287 IRETW Inst = 157<<21 | 1<<16 | 288 JA Inst = 158<<21 | 2<<16 | 289 JAE Inst = 159<<21 | 2<<16 | 291 JB Inst = 160<<21 | 2<<16 | 293 JBE Inst = 161<<21 | 2<<16 | 295 JC Inst = 162<<21 | 2<<16 | 297 JE Inst = 163<<21 | 2<<16 | 299 JECXZ Inst = 164<<21 | 1<<16 | 301 JG Inst = 165<<21 | 2<<16 | 302 JGE Inst = 166<<21 | 2<<16 | 304 JL Inst = 167<<21 | 2<<16 | 306 JLE Inst = 168<<21 | 2<<16 | 308 JMP Inst = 169<<21 | 3<<16 | 310 JNA Inst = 170<<21 | 2<<16 | 313 JNAE Inst = 171<<21 | 2<<16 | 315 JNB Inst = 172<<21 | 2<<16 | 317 JNBE Inst = 173<<21 | 2<<16 | 319 JNC Inst = 174<<21 | 2<<16 | 321 JNE Inst = 175<<21 | 2<<16 | 323 JNG Inst = 176<<21 | 2<<16 | 325 JNGE Inst = 177<<21 | 2<<16 | 327 JNL Inst = 178<<21 | 2<<16 | 329 JNLE Inst = 179<<21 | 2<<16 | 331 JNO Inst = 180<<21 | 2<<16 | 333 JNP Inst = 181<<21 | 2<<16 | 335 JNS Inst = 182<<21 | 2<<16 | 337 JNZ Inst = 183<<21 | 2<<16 | 339 JO Inst = 184<<21 | 2<<16 | 341 JP Inst = 185<<21 | 2<<16 | 343 JPE Inst = 186<<21 | 2<<16 | 345 JPO Inst = 187<<21 | 2<<16 | 347 JRCXZ Inst = 188<<21 | 1<<16 | 349 JS Inst = 189<<21 | 2<<16 | 350 JZ Inst = 190<<21 | 2<<16 | 352 LAHF Inst = 191<<21 | 1<<16 | 354 LAR Inst = 192<<21 | 2<<16 | 355 LDDQU Inst = 193<<21 | 1<<16 | 357 LDMXCSR Inst = 194<<21 | 1<<16 | 358 LEA Inst = 195<<21 | 1<<16 | 359 LEAVE Inst = 196<<21 | 1<<16 | 360 LFENCE Inst = 197<<21 | 1<<16 | 361 LFS Inst = 198<<21 | 1<<16 | 362 LGDT Inst = 199<<21 | 1<<16 | 363 LGS Inst = 200<<21 | 1<<16 | 364 LIDT Inst = 201<<21 | 1<<16 | 365 LLDT Inst = 202<<21 | 2<<16 | 366 LLWPCB Inst = 203<<21 | 1<<16 | 368 LMSW Inst = 204<<21 | 2<<16 | 369 LODSB Inst = 205<<21 | 1<<16 | 371 LODSD Inst = 206<<21 | 1<<16 | 372 LODSQ Inst = 207<<21 | 1<<16 | 373 LODSW Inst = 208<<21 | 1<<16 | 374 LOOP Inst = 209<<21 | 1<<16 | 375 LOOPE Inst = 210<<21 | 1<<16 | 376 LOOPNE Inst = 211<<21 | 1<<16 | 377 LOOPNZ Inst = 212<<21 | 1<<16 | 378 LOOPZ Inst = 213<<21 | 1<<16 | 379 LSL Inst = 214<<21 | 2<<16 | 380 LSS Inst = 215<<21 | 1<<16 | 382 LTR Inst = 216<<21 | 2<<16 | 383 LWPINS Inst = 217<<21 | 1<<16 | 385 LWPVAL Inst = 218<<21 | 1<<16 | 386 LZCNT Inst = 219<<21 | 1<<16 | 387 MASKMOVDQU Inst = 220<<21 | 1<<16 | 388 MASKMOVQ Inst = 221<<21 | 1<<16 | 389 MAXSD Inst = 222<<21 | 2<<16 | 390 MAXSS Inst = 223<<21 | 2<<16 | 392 MFENCE Inst = 224<<21 | 1<<16 | 394 MINSD Inst = 225<<21 | 2<<16 | 395 MINSS Inst = 226<<21 | 2<<16 | 397 MONITOR Inst = 227<<21 | 2<<16 | 399 MONITORX Inst = 228<<21 | 2<<16 | 401 MOV Inst = 229<<21 | 26<<16 | 403 MOVABS Inst = 230<<21 | 8<<16 | 429 MOVAPD Inst = 231<<21 | 4<<16 | 437 MOVAPS Inst = 232<<21 | 2<<16 | 441 MOVBE Inst = 233<<21 | 2<<16 | 443 MOVD Inst = 234<<21 | 8<<16 | 445 MOVDDUP Inst = 235<<21 | 2<<16 | 453 MOVDQ2Q Inst = 236<<21 | 1<<16 | 455 MOVDQA Inst = 237<<21 | 4<<16 | 456 MOVDQU Inst = 238<<21 | 4<<16 | 460 MOVHLPS Inst = 239<<21 | 1<<16 | 464 MOVHPD Inst = 240<<21 | 2<<16 | 465 MOVHPS Inst = 241<<21 | 2<<16 | 467 MOVLHPS Inst = 242<<21 | 1<<16 | 469 MOVLPD Inst = 243<<21 | 2<<16 | 470 MOVLPS Inst = 244<<21 | 2<<16 | 472 MOVMSKPD Inst = 245<<21 | 2<<16 | 474 MOVMSKPS Inst = 246<<21 | 2<<16 | 476 MOVNTDQ Inst = 247<<21 | 1<<16 | 478 MOVNTDQA Inst = 248<<21 | 1<<16 | 479 MOVNTI Inst = 249<<21 | 2<<16 | 480 MOVNTPD Inst = 250<<21 | 1<<16 | 482 MOVNTPS Inst = 251<<21 | 1<<16 | 483 MOVNTQ Inst = 252<<21 | 1<<16 | 484 MOVNTSD Inst = 253<<21 | 1<<16 | 485 MOVNTSS Inst = 254<<21 | 1<<16 | 486 MOVQ Inst = 255<<21 | 10<<16 | 487 MOVQ2DQ Inst = 256<<21 | 1<<16 | 497 MOVSB Inst = 257<<21 | 1<<16 | 498 MOVSD Inst = 258<<21 | 5<<16 | 499 MOVSHDUP Inst = 259<<21 | 2<<16 | 504 MOVSLDUP Inst = 260<<21 | 2<<16 | 506 MOVSQ Inst = 261<<21 | 1<<16 | 508 MOVSS Inst = 262<<21 | 3<<16 | 509 MOVSW Inst = 263<<21 | 1<<16 | 512 MOVSX Inst = 264<<21 | 4<<16 | 513 MOVSXD Inst = 265<<21 | 1<<16 | 517 MOVUPD Inst = 266<<21 | 4<<16 | 518 MOVUPS Inst = 267<<21 | 2<<16 | 522 MOVZX Inst = 268<<21 | 3<<16 | 524 MPSADBW Inst = 269<<21 | 2<<16 | 527 MUL Inst = 270<<21 | 2<<16 | 529 MULSD Inst = 271<<21 | 2<<16 | 531 MULSS Inst = 272<<21 | 2<<16 | 533 MULX Inst = 273<<21 | 1<<16 | 535 MWAIT Inst = 274<<21 | 2<<16 | 536 MWAITX Inst = 275<<21 | 2<<16 | 538 NEG Inst = 276<<21 | 4<<16 | 540 NOP Inst = 277<<21 | 2<<16 | 544 NOT Inst = 278<<21 | 4<<16 | 546 OR Inst = 279<<21 | 14<<16 | 550 OUT Inst = 280<<21 | 6<<16 | 564 OUTSB Inst = 281<<21 | 1<<16 | 570 OUTSD Inst = 282<<21 | 1<<16 | 571 OUTSW Inst = 283<<21 | 1<<16 | 572 PAUSE Inst = 284<<21 | 1<<16 | 573 POP Inst = 285<<21 | 4<<16 | 574 POPCNT Inst = 286<<21 | 1<<16 | 578 POPF Inst = 287<<21 | 1<<16 | 579 POPFQ Inst = 288<<21 | 1<<16 | 580 POPFW Inst = 289<<21 | 1<<16 | 581 PREFETCH Inst = 290<<21 | 1<<16 | 582 PREFETCHNTA Inst = 291<<21 | 1<<16 | 583 PREFETCHT0 Inst = 292<<21 | 1<<16 | 584 PREFETCHT1 Inst = 293<<21 | 1<<16 | 585 PREFETCHT2 Inst = 294<<21 | 1<<16 | 586 PREFETCHW Inst = 295<<21 | 1<<16 | 587 PUSH Inst = 296<<21 | 7<<16 | 588 PUSHF Inst = 297<<21 | 1<<16 | 595 PUSHFQ Inst = 298<<21 | 1<<16 | 596 PUSHFW Inst = 299<<21 | 1<<16 | 597 RCL Inst = 300<<21 | 4<<16 | 598 RCPSS Inst = 301<<21 | 2<<16 | 602 RCR Inst = 302<<21 | 4<<16 | 604 RDFSBASE Inst = 303<<21 | 2<<16 | 608 RDGSBASE Inst = 304<<21 | 2<<16 | 610 RDMSR Inst = 305<<21 | 1<<16 | 612 RDPID Inst = 306<<21 | 1<<16 | 613 RDPKRU Inst = 307<<21 | 1<<16 | 614 RDPMC Inst = 308<<21 | 1<<16 | 615 RDRAND Inst = 309<<21 | 1<<16 | 616 RDSEED Inst = 310<<21 | 1<<16 | 617 RDTSC Inst = 311<<21 | 1<<16 | 618 RDTSCP Inst = 312<<21 | 1<<16 | 619 RET Inst = 313<<21 | 2<<16 | 620 RETF Inst = 314<<21 | 2<<16 | 622 RETN Inst = 315<<21 | 2<<16 | 624 ROL Inst = 316<<21 | 4<<16 | 626 ROR Inst = 317<<21 | 4<<16 | 630 RORX Inst = 318<<21 | 1<<16 | 634 ROUNDSD Inst = 319<<21 | 2<<16 | 635 ROUNDSS Inst = 320<<21 | 2<<16 | 637 RSM Inst = 321<<21 | 1<<16 | 639 RSQRTSS Inst = 322<<21 | 2<<16 | 640 SAHF Inst = 323<<21 | 1<<16 | 642 SAL Inst = 324<<21 | 4<<16 | 643 SAR Inst = 325<<21 | 4<<16 | 647 SARX Inst = 326<<21 | 1<<16 | 651 SBB Inst = 327<<21 | 14<<16 | 652 SCASB Inst = 328<<21 | 1<<16 | 666 SCASD Inst = 329<<21 | 1<<16 | 667 SCASQ Inst = 330<<21 | 1<<16 | 668 SCASW Inst = 331<<21 | 1<<16 | 669 SETA Inst = 332<<21 | 1<<16 | 670 SETAE Inst = 333<<21 | 1<<16 | 671 SETB Inst = 334<<21 | 1<<16 | 672 SETBE Inst = 335<<21 | 1<<16 | 673 SETC Inst = 336<<21 | 1<<16 | 674 SETE Inst = 337<<21 | 1<<16 | 675 SETG Inst = 338<<21 | 1<<16 | 676 SETGE Inst = 339<<21 | 1<<16 | 677 SETL Inst = 340<<21 | 1<<16 | 678 SETLE Inst = 341<<21 | 1<<16 | 679 SETNA Inst = 342<<21 | 1<<16 | 680 SETNAE Inst = 343<<21 | 1<<16 | 681 SETNB Inst = 344<<21 | 1<<16 | 682 SETNBE Inst = 345<<21 | 1<<16 | 683 SETNC Inst = 346<<21 | 1<<16 | 684 SETNE Inst = 347<<21 | 1<<16 | 685 SETNG Inst = 348<<21 | 1<<16 | 686 SETNGE Inst = 349<<21 | 1<<16 | 687 SETNL Inst = 350<<21 | 1<<16 | 688 SETNLE Inst = 351<<21 | 1<<16 | 689 SETNO Inst = 352<<21 | 1<<16 | 690 SETNP Inst = 353<<21 | 1<<16 | 691 SETNS Inst = 354<<21 | 1<<16 | 692 SETNZ Inst = 355<<21 | 1<<16 | 693 SETO Inst = 356<<21 | 1<<16 | 694 SETP Inst = 357<<21 | 1<<16 | 695 SETPE Inst = 358<<21 | 1<<16 | 696 SETPO Inst = 359<<21 | 1<<16 | 697 SETS Inst = 360<<21 | 1<<16 | 698 SETZ Inst = 361<<21 | 1<<16 | 699 SFENCE Inst = 362<<21 | 1<<16 | 700 SGDT Inst = 363<<21 | 1<<16 | 701 SHL Inst = 364<<21 | 4<<16 | 702 SHLD Inst = 365<<21 | 2<<16 | 706 SHLX Inst = 366<<21 | 1<<16 | 708 SHR Inst = 367<<21 | 4<<16 | 709 SHRD Inst = 368<<21 | 2<<16 | 713 SHRX Inst = 369<<21 | 1<<16 | 715 SIDT Inst = 370<<21 | 1<<16 | 716 SKINIT Inst = 371<<21 | 1<<16 | 717 SLDT Inst = 372<<21 | 2<<16 | 718 SLWPCB Inst = 373<<21 | 1<<16 | 720 SMSW Inst = 374<<21 | 2<<16 | 721 SQRTSD Inst = 375<<21 | 2<<16 | 723 SQRTSS Inst = 376<<21 | 2<<16 | 725 STAC Inst = 377<<21 | 1<<16 | 727 STC Inst = 378<<21 | 1<<16 | 728 STD Inst = 379<<21 | 1<<16 | 729 STGI Inst = 380<<21 | 1<<16 | 730 STI Inst = 381<<21 | 1<<16 | 731 STMXCSR Inst = 382<<21 | 1<<16 | 732 STOSB Inst = 383<<21 | 1<<16 | 733 STOSD Inst = 384<<21 | 1<<16 | 734 STOSQ Inst = 385<<21 | 1<<16 | 735 STOSW Inst = 386<<21 | 1<<16 | 736 STR Inst = 387<<21 | 2<<16 | 737 SUB Inst = 388<<21 | 14<<16 | 739 SUBSD Inst = 389<<21 | 2<<16 | 753 SUBSS Inst = 390<<21 | 2<<16 | 755 SWAPGS Inst = 391<<21 | 1<<16 | 757 SYSCALL Inst = 392<<21 | 1<<16 | 758 SYSRET Inst = 393<<21 | 1<<16 | 759 T1MSKC Inst = 394<<21 | 1<<16 | 760 TEST Inst = 395<<21 | 8<<16 | 761 TZCNT Inst = 396<<21 | 1<<16 | 769 TZMSK Inst = 397<<21 | 1<<16 | 770 UCOMISD Inst = 398<<21 | 2<<16 | 771 UCOMISS Inst = 399<<21 | 2<<16 | 773 UD2 Inst = 400<<21 | 1<<16 | 775 UD2A Inst = 401<<21 | 1<<16 | 776 WBINVD Inst = 402<<21 | 1<<16 | 777 WRFSBASE Inst = 403<<21 | 2<<16 | 778 WRGSBASE Inst = 404<<21 | 2<<16 | 780 WRMSR Inst = 405<<21 | 1<<16 | 782 WRPKRU Inst = 406<<21 | 1<<16 | 783 XOR Inst = 407<<21 | 14<<16 | 784 AESDEC Inst = 408<<21 | 1<<16 | 798 AESDECLAST Inst = 409<<21 | 1<<16 | 799 AESENC Inst = 410<<21 | 1<<16 | 800 AESENCLAST Inst = 411<<21 | 1<<16 | 801 AESIMC Inst = 412<<21 | 1<<16 | 802 AESKEYGENASSIST Inst = 413<<21 | 1<<16 | 803 SHA1MSG1 Inst = 414<<21 | 1<<16 | 804 SHA1MSG2 Inst = 415<<21 | 1<<16 | 805 SHA1NEXTE Inst = 416<<21 | 1<<16 | 806 SHA1RNDS4 Inst = 417<<21 | 1<<16 | 807 SHA256MSG1 Inst = 418<<21 | 1<<16 | 808 SHA256MSG2 Inst = 419<<21 | 1<<16 | 809 SHA256RNDS2 Inst = 420<<21 | 1<<16 | 810 XABORT Inst = 421<<21 | 1<<16 | 811 XADD Inst = 422<<21 | 4<<16 | 812 XBEGIN Inst = 423<<21 | 1<<16 | 816 XCHG Inst = 424<<21 | 10<<16 | 817 XEND Inst = 425<<21 | 1<<16 | 827 XGETBV Inst = 426<<21 | 1<<16 | 828 XLAT Inst = 427<<21 | 1<<16 | 829 XLATB Inst = 428<<21 | 1<<16 | 830 XRSTOR Inst = 429<<21 | 1<<16 | 831 XRSTOR64 Inst = 430<<21 | 1<<16 | 832 XRSTORS64 Inst = 431<<21 | 1<<16 | 833 XSAVE Inst = 432<<21 | 1<<16 | 834 XSAVE64 Inst = 433<<21 | 1<<16 | 835 XSAVEC64 Inst = 434<<21 | 1<<16 | 836 XSAVEOPT64 Inst = 435<<21 | 1<<16 | 837 XSAVES64 Inst = 436<<21 | 1<<16 | 838 XSETBV Inst = 437<<21 | 1<<16 | 839 XTEST Inst = 438<<21 | 1<<16 | 840 F2XM1 Inst = 439<<21 | 1<<16 | 841 FABS Inst = 440<<21 | 1<<16 | 842 FADD Inst = 441<<21 | 7<<16 | 843 FADDP Inst = 442<<21 | 3<<16 | 850 FBLD Inst = 443<<21 | 1<<16 | 853 FBSTP Inst = 444<<21 | 1<<16 | 854 FCHS Inst = 445<<21 | 1<<16 | 855 FCLEX Inst = 446<<21 | 1<<16 | 856 FCMOVB Inst = 447<<21 | 3<<16 | 857 FCMOVBE Inst = 448<<21 | 3<<16 | 860 FCMOVE Inst = 449<<21 | 3<<16 | 863 FCMOVNB Inst = 450<<21 | 3<<16 | 866 FCMOVNBE Inst = 451<<21 | 3<<16 | 869 FCMOVNE Inst = 452<<21 | 3<<16 | 872 FCMOVNU Inst = 453<<21 | 3<<16 | 875 FCMOVU Inst = 454<<21 | 3<<16 | 878 FCOM Inst = 455<<21 | 5<<16 | 881 FCOMI Inst = 456<<21 | 3<<16 | 886 FCOMIP Inst = 457<<21 | 3<<16 | 889 FCOMP Inst = 458<<21 | 5<<16 | 892 FCOMPP Inst = 459<<21 | 1<<16 | 897 FCOS Inst = 460<<21 | 1<<16 | 898 FDECSTP Inst = 461<<21 | 1<<16 | 899 FDISI Inst = 462<<21 | 1<<16 | 900 FDIV Inst = 463<<21 | 7<<16 | 901 FDIVP Inst = 464<<21 | 3<<16 | 908 FDIVR Inst = 465<<21 | 7<<16 | 911 FDIVRP Inst = 466<<21 | 3<<16 | 918 FEMMS Inst = 467<<21 | 1<<16 | 921 FENI Inst = 468<<21 | 1<<16 | 922 FFREE Inst = 469<<21 | 2<<16 | 923 FIADD Inst = 470<<21 | 2<<16 | 925 FICOM Inst = 471<<21 | 2<<16 | 927 FICOMP Inst = 472<<21 | 2<<16 | 929 FIDIV Inst = 473<<21 | 2<<16 | 931 FIDIVR Inst = 474<<21 | 2<<16 | 933 FILD Inst = 475<<21 | 3<<16 | 935 FIMUL Inst = 476<<21 | 2<<16 | 938 FINCSTP Inst = 477<<21 | 1<<16 | 940 FINIT Inst = 478<<21 | 1<<16 | 941 FIST Inst = 479<<21 | 2<<16 | 942 FISTP Inst = 480<<21 | 3<<16 | 944 FISTTP Inst = 481<<21 | 3<<16 | 947 FISUB Inst = 482<<21 | 2<<16 | 950 FISUBR Inst = 483<<21 | 2<<16 | 952 FLD Inst = 484<<21 | 5<<16 | 954 FLD1 Inst = 485<<21 | 1<<16 | 959 FLDCW Inst = 486<<21 | 1<<16 | 960 FLDENV Inst = 487<<21 | 1<<16 | 961 FLDL2E Inst = 488<<21 | 1<<16 | 962 FLDL2T Inst = 489<<21 | 1<<16 | 963 FLDLG2 Inst = 490<<21 | 1<<16 | 964 FLDLN2 Inst = 491<<21 | 1<<16 | 965 FLDPI Inst = 492<<21 | 1<<16 | 966 FLDZ Inst = 493<<21 | 1<<16 | 967 FMUL Inst = 494<<21 | 7<<16 | 968 FMULP Inst = 495<<21 | 3<<16 | 975 FNCLEX Inst = 496<<21 | 1<<16 | 978 FNDISI Inst = 497<<21 | 1<<16 | 979 FNENI Inst = 498<<21 | 1<<16 | 980 FNINIT Inst = 499<<21 | 1<<16 | 981 FNOP Inst = 500<<21 | 1<<16 | 982 FNSAVE Inst = 501<<21 | 1<<16 | 983 FNSTCW Inst = 502<<21 | 1<<16 | 984 FNSTENV Inst = 503<<21 | 1<<16 | 985 FNSTSW Inst = 504<<21 | 2<<16 | 986 FPATAN Inst = 505<<21 | 1<<16 | 988 FPREM Inst = 506<<21 | 1<<16 | 989 FPREM1 Inst = 507<<21 | 1<<16 | 990 FPTAN Inst = 508<<21 | 1<<16 | 991 FRNDINT Inst = 509<<21 | 1<<16 | 992 FRSTOR Inst = 510<<21 | 1<<16 | 993 FSAVE Inst = 511<<21 | 1<<16 | 994 FSCALE Inst = 512<<21 | 1<<16 | 995 FSETPM Inst = 513<<21 | 1<<16 | 996 FSIN Inst = 514<<21 | 1<<16 | 997 FSINCOS Inst = 515<<21 | 1<<16 | 998 FSQRT Inst = 516<<21 | 1<<16 | 999 FST Inst = 517<<21 | 4<<16 | 1000 FSTCW Inst = 518<<21 | 1<<16 | 1004 FSTENV Inst = 519<<21 | 1<<16 | 1005 FSTP Inst = 520<<21 | 5<<16 | 1006 FSTSW Inst = 521<<21 | 2<<16 | 1011 FSUB Inst = 522<<21 | 7<<16 | 1013 FSUBP Inst = 523<<21 | 3<<16 | 1020 FSUBR Inst = 524<<21 | 7<<16 | 1023 FSUBRP Inst = 525<<21 | 3<<16 | 1030 FTST Inst = 526<<21 | 1<<16 | 1033 FUCOM Inst = 527<<21 | 3<<16 | 1034 FUCOMI Inst = 528<<21 | 3<<16 | 1037 FUCOMIP Inst = 529<<21 | 3<<16 | 1040 FUCOMP Inst = 530<<21 | 3<<16 | 1043 FUCOMPP Inst = 531<<21 | 1<<16 | 1046 FWAIT Inst = 532<<21 | 1<<16 | 1047 FXAM Inst = 533<<21 | 1<<16 | 1048 FXCH Inst = 534<<21 | 4<<16 | 1049 FXRSTOR Inst = 535<<21 | 1<<16 | 1053 FXRSTOR64 Inst = 536<<21 | 1<<16 | 1054 FXSAVE Inst = 537<<21 | 1<<16 | 1055 FXSAVE64 Inst = 538<<21 | 1<<16 | 1056 FXTRACT Inst = 539<<21 | 1<<16 | 1057 FYL2X Inst = 540<<21 | 1<<16 | 1058 FYL2XP1 Inst = 541<<21 | 1<<16 | 1059 ADDPD Inst = 542<<21 | 1<<16 | 1060 ADDPS Inst = 543<<21 | 1<<16 | 1061 ADDSUBPD Inst = 544<<21 | 1<<16 | 1062 ADDSUBPS Inst = 545<<21 | 1<<16 | 1063 ANDNPD Inst = 546<<21 | 1<<16 | 1064 ANDNPS Inst = 547<<21 | 1<<16 | 1065 ANDPD Inst = 548<<21 | 1<<16 | 1066 ANDPS Inst = 549<<21 | 1<<16 | 1067 BLENDPD Inst = 550<<21 | 2<<16 | 1068 BLENDPS Inst = 551<<21 | 2<<16 | 1070 BLENDVPD Inst = 552<<21 | 2<<16 | 1072 BLENDVPS Inst = 553<<21 | 2<<16 | 1074 CMPEQPD Inst = 554<<21 | 1<<16 | 1076 CMPEQPS Inst = 555<<21 | 1<<16 | 1077 CMPLEPD Inst = 556<<21 | 1<<16 | 1078 CMPLEPS Inst = 557<<21 | 1<<16 | 1079 CMPLTPD Inst = 558<<21 | 1<<16 | 1080 CMPLTPS Inst = 559<<21 | 1<<16 | 1081 CMPNEQPD Inst = 560<<21 | 1<<16 | 1082 CMPNEQPS Inst = 561<<21 | 1<<16 | 1083 CMPNLEPD Inst = 562<<21 | 1<<16 | 1084 CMPNLEPS Inst = 563<<21 | 1<<16 | 1085 CMPNLTPD Inst = 564<<21 | 1<<16 | 1086 CMPNLTPS Inst = 565<<21 | 1<<16 | 1087 CMPORDPD Inst = 566<<21 | 1<<16 | 1088 CMPORDPS Inst = 567<<21 | 1<<16 | 1089 CMPPD Inst = 568<<21 | 1<<16 | 1090 CMPPS Inst = 569<<21 | 2<<16 | 1091 CMPUNORDPD Inst = 570<<21 | 1<<16 | 1093 CMPUNORDPS Inst = 571<<21 | 1<<16 | 1094 CVTDQ2PD Inst = 572<<21 | 2<<16 | 1095 CVTDQ2PS Inst = 573<<21 | 1<<16 | 1097 CVTPD2PS Inst = 574<<21 | 1<<16 | 1098 CVTPI2PD Inst = 575<<21 | 1<<16 | 1099 CVTPI2PS Inst = 576<<21 | 1<<16 | 1100 CVTPS2PD Inst = 577<<21 | 2<<16 | 1101 DIVPD Inst = 578<<21 | 1<<16 | 1103 DIVPS Inst = 579<<21 | 1<<16 | 1104 DPPD Inst = 580<<21 | 2<<16 | 1105 DPPS Inst = 581<<21 | 2<<16 | 1107 EXTRACTPS Inst = 582<<21 | 2<<16 | 1109 HADDPD Inst = 583<<21 | 1<<16 | 1111 HADDPS Inst = 584<<21 | 1<<16 | 1112 HSUBPD Inst = 585<<21 | 1<<16 | 1113 HSUBPS Inst = 586<<21 | 1<<16 | 1114 INSERTPS Inst = 587<<21 | 2<<16 | 1115 MAXPD Inst = 588<<21 | 1<<16 | 1117 MAXPS Inst = 589<<21 | 1<<16 | 1118 MINPD Inst = 590<<21 | 1<<16 | 1119 MINPS Inst = 591<<21 | 1<<16 | 1120 MULPD Inst = 592<<21 | 1<<16 | 1121 MULPS Inst = 593<<21 | 1<<16 | 1122 ORPD Inst = 594<<21 | 1<<16 | 1123 ORPS Inst = 595<<21 | 1<<16 | 1124 RCPPS Inst = 596<<21 | 1<<16 | 1125 ROUNDPD Inst = 597<<21 | 2<<16 | 1126 ROUNDPS Inst = 598<<21 | 2<<16 | 1128 RSQRTPS Inst = 599<<21 | 1<<16 | 1130 SHUFPD Inst = 600<<21 | 1<<16 | 1131 SHUFPS Inst = 601<<21 | 1<<16 | 1132 SQRTPD Inst = 602<<21 | 1<<16 | 1133 SQRTPS Inst = 603<<21 | 1<<16 | 1134 SUBPD Inst = 604<<21 | 1<<16 | 1135 SUBPS Inst = 605<<21 | 1<<16 | 1136 UNPCKHPD Inst = 606<<21 | 1<<16 | 1137 UNPCKHPS Inst = 607<<21 | 1<<16 | 1138 UNPCKLPD Inst = 608<<21 | 1<<16 | 1139 UNPCKLPS Inst = 609<<21 | 1<<16 | 1140 XORPD Inst = 610<<21 | 1<<16 | 1141 XORPS Inst = 611<<21 | 1<<16 | 1142 PABSB Inst = 612<<21 | 3<<16 | 1143 PABSD Inst = 613<<21 | 3<<16 | 1146 PABSW Inst = 614<<21 | 3<<16 | 1149 PACKSSDW Inst = 615<<21 | 2<<16 | 1152 PACKSSWB Inst = 616<<21 | 2<<16 | 1154 PACKUSDW Inst = 617<<21 | 2<<16 | 1156 PACKUSWB Inst = 618<<21 | 2<<16 | 1158 PADDB Inst = 619<<21 | 2<<16 | 1160 PADDD Inst = 620<<21 | 2<<16 | 1162 PADDQ Inst = 621<<21 | 2<<16 | 1164 PADDSB Inst = 622<<21 | 2<<16 | 1166 PADDSW Inst = 623<<21 | 2<<16 | 1168 PADDUSB Inst = 624<<21 | 2<<16 | 1170 PADDUSW Inst = 625<<21 | 2<<16 | 1172 PADDW Inst = 626<<21 | 2<<16 | 1174 PALIGNR Inst = 627<<21 | 3<<16 | 1176 PAND Inst = 628<<21 | 2<<16 | 1179 PANDN Inst = 629<<21 | 2<<16 | 1181 PAVGB Inst = 630<<21 | 2<<16 | 1183 PAVGUSB Inst = 631<<21 | 1<<16 | 1185 PAVGW Inst = 632<<21 | 2<<16 | 1186 PBLENDVB Inst = 633<<21 | 2<<16 | 1188 PBLENDW Inst = 634<<21 | 2<<16 | 1190 PCLMULHQHQDQ Inst = 635<<21 | 1<<16 | 1192 PCLMULHQLQDQ Inst = 636<<21 | 1<<16 | 1193 PCLMULLQHQDQ Inst = 637<<21 | 1<<16 | 1194 PCLMULLQLQDQ Inst = 638<<21 | 1<<16 | 1195 PCLMULQDQ Inst = 639<<21 | 1<<16 | 1196 PCMPEQB Inst = 640<<21 | 2<<16 | 1197 PCMPEQD Inst = 641<<21 | 2<<16 | 1199 PCMPEQQ Inst = 642<<21 | 2<<16 | 1201 PCMPEQW Inst = 643<<21 | 2<<16 | 1203 PCMPESTRI Inst = 644<<21 | 2<<16 | 1205 PCMPESTRM Inst = 645<<21 | 2<<16 | 1207 PCMPGTB Inst = 646<<21 | 2<<16 | 1209 PCMPGTD Inst = 647<<21 | 2<<16 | 1211 PCMPGTQ Inst = 648<<21 | 2<<16 | 1213 PCMPGTW Inst = 649<<21 | 2<<16 | 1215 PCMPISTRI Inst = 650<<21 | 2<<16 | 1217 PCMPISTRM Inst = 651<<21 | 2<<16 | 1219 PDEP Inst = 652<<21 | 1<<16 | 1221 PEXT Inst = 653<<21 | 1<<16 | 1222 PEXTRB Inst = 654<<21 | 3<<16 | 1223 PEXTRD Inst = 655<<21 | 1<<16 | 1226 PEXTRQ Inst = 656<<21 | 1<<16 | 1227 PEXTRW Inst = 657<<21 | 5<<16 | 1228 PF2ID Inst = 658<<21 | 1<<16 | 1233 PF2IW Inst = 659<<21 | 1<<16 | 1234 PFACC Inst = 660<<21 | 1<<16 | 1235 PFADD Inst = 661<<21 | 1<<16 | 1236 PFCMPEQ Inst = 662<<21 | 1<<16 | 1237 PFCMPGE Inst = 663<<21 | 1<<16 | 1238 PFCMPGT Inst = 664<<21 | 1<<16 | 1239 PFMAX Inst = 665<<21 | 1<<16 | 1240 PFMIN Inst = 666<<21 | 1<<16 | 1241 PFMUL Inst = 667<<21 | 1<<16 | 1242 PFNACC Inst = 668<<21 | 1<<16 | 1243 PFPNACC Inst = 669<<21 | 1<<16 | 1244 PFRCP Inst = 670<<21 | 1<<16 | 1245 PFRCPIT1 Inst = 671<<21 | 1<<16 | 1246 PFRCPIT2 Inst = 672<<21 | 1<<16 | 1247 PFRSQIT1 Inst = 673<<21 | 1<<16 | 1248 PFRSQRT Inst = 674<<21 | 1<<16 | 1249 PFSUB Inst = 675<<21 | 1<<16 | 1250 PFSUBR Inst = 676<<21 | 1<<16 | 1251 PHADDD Inst = 677<<21 | 3<<16 | 1252 PHADDSW Inst = 678<<21 | 3<<16 | 1255 PHADDW Inst = 679<<21 | 3<<16 | 1258 PHMINPOSUW Inst = 680<<21 | 2<<16 | 1261 PHSUBD Inst = 681<<21 | 3<<16 | 1263 PHSUBSW Inst = 682<<21 | 3<<16 | 1266 PHSUBW Inst = 683<<21 | 3<<16 | 1269 PI2FD Inst = 684<<21 | 1<<16 | 1272 PI2FW Inst = 685<<21 | 1<<16 | 1273 PINSRB Inst = 686<<21 | 3<<16 | 1274 PINSRD Inst = 687<<21 | 2<<16 | 1277 PINSRQ Inst = 688<<21 | 2<<16 | 1279 PINSRW Inst = 689<<21 | 7<<16 | 1281 PMADDUBSW Inst = 690<<21 | 3<<16 | 1288 PMADDWD Inst = 691<<21 | 2<<16 | 1291 PMAXSB Inst = 692<<21 | 2<<16 | 1293 PMAXSD Inst = 693<<21 | 2<<16 | 1295 PMAXSW Inst = 694<<21 | 2<<16 | 1297 PMAXUB Inst = 695<<21 | 2<<16 | 1299 PMAXUD Inst = 696<<21 | 2<<16 | 1301 PMAXUW Inst = 697<<21 | 2<<16 | 1303 PMINSB Inst = 698<<21 | 2<<16 | 1305 PMINSD Inst = 699<<21 | 2<<16 | 1307 PMINSW Inst = 700<<21 | 2<<16 | 1309 PMINUB Inst = 701<<21 | 2<<16 | 1311 PMINUD Inst = 702<<21 | 2<<16 | 1313 PMINUW Inst = 703<<21 | 2<<16 | 1315 PMOVMSKB Inst = 704<<21 | 2<<16 | 1317 PMOVSXBD Inst = 705<<21 | 2<<16 | 1319 PMOVSXBQ Inst = 706<<21 | 2<<16 | 1321 PMOVSXBW Inst = 707<<21 | 2<<16 | 1323 PMOVSXDQ Inst = 708<<21 | 2<<16 | 1325 PMOVSXWD Inst = 709<<21 | 2<<16 | 1327 PMOVSXWQ Inst = 710<<21 | 2<<16 | 1329 PMOVZXBD Inst = 711<<21 | 2<<16 | 1331 PMOVZXBQ Inst = 712<<21 | 2<<16 | 1333 PMOVZXBW Inst = 713<<21 | 2<<16 | 1335 PMOVZXDQ Inst = 714<<21 | 2<<16 | 1337 PMOVZXWD Inst = 715<<21 | 2<<16 | 1339 PMOVZXWQ Inst = 716<<21 | 2<<16 | 1341 PMULDQ Inst = 717<<21 | 2<<16 | 1343 PMULHRSW Inst = 718<<21 | 3<<16 | 1345 PMULHRWA Inst = 719<<21 | 1<<16 | 1348 PMULHUW Inst = 720<<21 | 2<<16 | 1349 PMULHW Inst = 721<<21 | 2<<16 | 1351 PMULLD Inst = 722<<21 | 2<<16 | 1353 PMULLW Inst = 723<<21 | 2<<16 | 1355 PMULUDQ Inst = 724<<21 | 2<<16 | 1357 POR Inst = 725<<21 | 2<<16 | 1359 PSADBW Inst = 726<<21 | 2<<16 | 1361 PSHUFB Inst = 727<<21 | 3<<16 | 1363 PSHUFD Inst = 728<<21 | 1<<16 | 1366 PSHUFHW Inst = 729<<21 | 1<<16 | 1367 PSHUFLW Inst = 730<<21 | 1<<16 | 1368 PSHUFW Inst = 731<<21 | 1<<16 | 1369 PSIGNB Inst = 732<<21 | 3<<16 | 1370 PSIGND Inst = 733<<21 | 3<<16 | 1373 PSIGNW Inst = 734<<21 | 3<<16 | 1376 PSLLD Inst = 735<<21 | 4<<16 | 1379 PSLLDQ Inst = 736<<21 | 1<<16 | 1383 PSLLQ Inst = 737<<21 | 4<<16 | 1384 PSLLW Inst = 738<<21 | 4<<16 | 1388 PSRAD Inst = 739<<21 | 4<<16 | 1392 PSRAW Inst = 740<<21 | 4<<16 | 1396 PSRLD Inst = 741<<21 | 4<<16 | 1400 PSRLDQ Inst = 742<<21 | 1<<16 | 1404 PSRLQ Inst = 743<<21 | 4<<16 | 1405 PSRLW Inst = 744<<21 | 4<<16 | 1409 PSUBB Inst = 745<<21 | 2<<16 | 1413 PSUBD Inst = 746<<21 | 2<<16 | 1415 PSUBQ Inst = 747<<21 | 2<<16 | 1417 PSUBSB Inst = 748<<21 | 2<<16 | 1419 PSUBSW Inst = 749<<21 | 2<<16 | 1421 PSUBUSB Inst = 750<<21 | 2<<16 | 1423 PSUBUSW Inst = 751<<21 | 2<<16 | 1425 PSUBW Inst = 752<<21 | 2<<16 | 1427 PSWAPD Inst = 753<<21 | 1<<16 | 1429 PTEST Inst = 754<<21 | 2<<16 | 1430 PUNPCKHBW Inst = 755<<21 | 2<<16 | 1432 PUNPCKHDQ Inst = 756<<21 | 2<<16 | 1434 PUNPCKHQDQ Inst = 757<<21 | 1<<16 | 1436 PUNPCKHWD Inst = 758<<21 | 2<<16 | 1437 PUNPCKLBW Inst = 759<<21 | 2<<16 | 1439 PUNPCKLDQ Inst = 760<<21 | 2<<16 | 1441 PUNPCKLQDQ Inst = 761<<21 | 1<<16 | 1443 PUNPCKLWD Inst = 762<<21 | 2<<16 | 1444 PXOR Inst = 763<<21 | 2<<16 | 1446 VADDPD Inst = 764<<21 | 1<<16 | 1448 VADDPS Inst = 765<<21 | 1<<16 | 1449 VADDSD Inst = 766<<21 | 2<<16 | 1450 VADDSS Inst = 767<<21 | 2<<16 | 1452 VADDSUBPD Inst = 768<<21 | 1<<16 | 1454 VADDSUBPS Inst = 769<<21 | 1<<16 | 1455 VAESDEC Inst = 770<<21 | 1<<16 | 1456 VAESDECLAST Inst = 771<<21 | 1<<16 | 1457 VAESENC Inst = 772<<21 | 1<<16 | 1458 VAESENCLAST Inst = 773<<21 | 1<<16 | 1459 VAESIMC Inst = 774<<21 | 1<<16 | 1460 VAESKEYGENASSIST Inst = 775<<21 | 1<<16 | 1461 VANDNPD Inst = 776<<21 | 1<<16 | 1462 VANDNPS Inst = 777<<21 | 1<<16 | 1463 VANDPD Inst = 778<<21 | 1<<16 | 1464 VANDPS Inst = 779<<21 | 1<<16 | 1465 VBLENDPD Inst = 780<<21 | 1<<16 | 1466 VBLENDPS Inst = 781<<21 | 1<<16 | 1467 VBLENDVPD Inst = 782<<21 | 1<<16 | 1468 VBLENDVPS Inst = 783<<21 | 1<<16 | 1469 VBROADCASTF128 Inst = 784<<21 | 1<<16 | 1470 VBROADCASTI128 Inst = 785<<21 | 1<<16 | 1471 VBROADCASTSD Inst = 786<<21 | 2<<16 | 1472 VBROADCASTSS Inst = 787<<21 | 2<<16 | 1474 VCMPEQ_OSPD Inst = 788<<21 | 2<<16 | 1476 VCMPEQ_OSPS Inst = 789<<21 | 1<<16 | 1478 VCMPEQ_OSSD Inst = 790<<21 | 2<<16 | 1479 VCMPEQ_OSSS Inst = 791<<21 | 2<<16 | 1481 VCMPEQ_UQPD Inst = 792<<21 | 2<<16 | 1483 VCMPEQ_UQPS Inst = 793<<21 | 1<<16 | 1485 VCMPEQ_UQSD Inst = 794<<21 | 2<<16 | 1486 VCMPEQ_UQSS Inst = 795<<21 | 2<<16 | 1488 VCMPEQ_USPD Inst = 796<<21 | 2<<16 | 1490 VCMPEQ_USPS Inst = 797<<21 | 1<<16 | 1492 VCMPEQ_USSD Inst = 798<<21 | 2<<16 | 1493 VCMPEQ_USSS Inst = 799<<21 | 2<<16 | 1495 VCMPEQPD Inst = 800<<21 | 1<<16 | 1497 VCMPEQPS Inst = 801<<21 | 1<<16 | 1498 VCMPEQSD Inst = 802<<21 | 2<<16 | 1499 VCMPEQSS Inst = 803<<21 | 2<<16 | 1501 VCMPFALSE_OQPD Inst = 804<<21 | 1<<16 | 1503 VCMPFALSE_OQPS Inst = 805<<21 | 1<<16 | 1504 VCMPFALSE_OQSD Inst = 806<<21 | 2<<16 | 1505 VCMPFALSE_OQSS Inst = 807<<21 | 2<<16 | 1507 VCMPFALSE_OSPD Inst = 808<<21 | 1<<16 | 1509 VCMPFALSE_OSPS Inst = 809<<21 | 1<<16 | 1510 VCMPFALSE_OSSD Inst = 810<<21 | 2<<16 | 1511 VCMPFALSE_OSSS Inst = 811<<21 | 2<<16 | 1513 VCMPFALSEPD Inst = 812<<21 | 2<<16 | 1515 VCMPFALSEPS Inst = 813<<21 | 1<<16 | 1517 VCMPFALSESD Inst = 814<<21 | 2<<16 | 1518 VCMPFALSESS Inst = 815<<21 | 2<<16 | 1520 VCMPGE_OQPD Inst = 816<<21 | 2<<16 | 1522 VCMPGE_OQPS Inst = 817<<21 | 1<<16 | 1524 VCMPGE_OQSD Inst = 818<<21 | 2<<16 | 1525 VCMPGE_OQSS Inst = 819<<21 | 2<<16 | 1527 VCMPGE_OSPD Inst = 820<<21 | 1<<16 | 1529 VCMPGE_OSPS Inst = 821<<21 | 1<<16 | 1530 VCMPGE_OSSD Inst = 822<<21 | 2<<16 | 1531 VCMPGE_OSSS Inst = 823<<21 | 2<<16 | 1533 VCMPGEPD Inst = 824<<21 | 1<<16 | 1535 VCMPGEPS Inst = 825<<21 | 1<<16 | 1536 VCMPGESD Inst = 826<<21 | 2<<16 | 1537 VCMPGESS Inst = 827<<21 | 2<<16 | 1539 VCMPGT_OQPD Inst = 828<<21 | 1<<16 | 1541 VCMPGT_OQPS Inst = 829<<21 | 1<<16 | 1542 VCMPGT_OQSD Inst = 830<<21 | 2<<16 | 1543 VCMPGT_OQSS Inst = 831<<21 | 2<<16 | 1545 VCMPGT_OSPD Inst = 832<<21 | 1<<16 | 1547 VCMPGT_OSPS Inst = 833<<21 | 1<<16 | 1548 VCMPGT_OSSD Inst = 834<<21 | 2<<16 | 1549 VCMPGT_OSSS Inst = 835<<21 | 2<<16 | 1551 VCMPGTPD Inst = 836<<21 | 2<<16 | 1553 VCMPGTPS Inst = 837<<21 | 1<<16 | 1555 VCMPGTSD Inst = 838<<21 | 2<<16 | 1556 VCMPGTSS Inst = 839<<21 | 2<<16 | 1558 VCMPLE_OQPD Inst = 840<<21 | 2<<16 | 1560 VCMPLE_OQPS Inst = 841<<21 | 1<<16 | 1562 VCMPLE_OQSD Inst = 842<<21 | 2<<16 | 1563 VCMPLE_OQSS Inst = 843<<21 | 2<<16 | 1565 VCMPLE_OSPD Inst = 844<<21 | 1<<16 | 1567 VCMPLE_OSPS Inst = 845<<21 | 1<<16 | 1568 VCMPLE_OSSD Inst = 846<<21 | 2<<16 | 1569 VCMPLE_OSSS Inst = 847<<21 | 2<<16 | 1571 VCMPLEPD Inst = 848<<21 | 2<<16 | 1573 VCMPLEPS Inst = 849<<21 | 1<<16 | 1575 VCMPLESD Inst = 850<<21 | 2<<16 | 1576 VCMPLESS Inst = 851<<21 | 2<<16 | 1578 VCMPLT_OQPD Inst = 852<<21 | 1<<16 | 1580 VCMPLT_OQPS Inst = 853<<21 | 1<<16 | 1581 VCMPLT_OQSD Inst = 854<<21 | 2<<16 | 1582 VCMPLT_OQSS Inst = 855<<21 | 2<<16 | 1584 VCMPLT_OSPD Inst = 856<<21 | 2<<16 | 1586 VCMPLT_OSPS Inst = 857<<21 | 1<<16 | 1588 VCMPLT_OSSD Inst = 858<<21 | 2<<16 | 1589 VCMPLT_OSSS Inst = 859<<21 | 2<<16 | 1591 VCMPLTPD Inst = 860<<21 | 2<<16 | 1593 VCMPLTPS Inst = 861<<21 | 1<<16 | 1595 VCMPLTSD Inst = 862<<21 | 2<<16 | 1596 VCMPLTSS Inst = 863<<21 | 2<<16 | 1598 VCMPNEQ_OQPD Inst = 864<<21 | 2<<16 | 1600 VCMPNEQ_OQPS Inst = 865<<21 | 1<<16 | 1602 VCMPNEQ_OQSD Inst = 866<<21 | 2<<16 | 1603 VCMPNEQ_OQSS Inst = 867<<21 | 2<<16 | 1605 VCMPNEQ_OSPD Inst = 868<<21 | 2<<16 | 1607 VCMPNEQ_OSPS Inst = 869<<21 | 1<<16 | 1609 VCMPNEQ_OSSD Inst = 870<<21 | 2<<16 | 1610 VCMPNEQ_OSSS Inst = 871<<21 | 2<<16 | 1612 VCMPNEQ_UQPD Inst = 872<<21 | 1<<16 | 1614 VCMPNEQ_UQPS Inst = 873<<21 | 1<<16 | 1615 VCMPNEQ_UQSD Inst = 874<<21 | 2<<16 | 1616 VCMPNEQ_UQSS Inst = 875<<21 | 2<<16 | 1618 VCMPNEQ_USPD Inst = 876<<21 | 2<<16 | 1620 VCMPNEQ_USPS Inst = 877<<21 | 1<<16 | 1622 VCMPNEQ_USSD Inst = 878<<21 | 2<<16 | 1623 VCMPNEQ_USSS Inst = 879<<21 | 2<<16 | 1625 VCMPNEQPD Inst = 880<<21 | 2<<16 | 1627 VCMPNEQPS Inst = 881<<21 | 1<<16 | 1629 VCMPNEQSD Inst = 882<<21 | 2<<16 | 1630 VCMPNEQSS Inst = 883<<21 | 2<<16 | 1632 VCMPNGE_UQPD Inst = 884<<21 | 1<<16 | 1634 VCMPNGE_UQPS Inst = 885<<21 | 1<<16 | 1635 VCMPNGE_UQSD Inst = 886<<21 | 2<<16 | 1636 VCMPNGE_UQSS Inst = 887<<21 | 2<<16 | 1638 VCMPNGE_USPD Inst = 888<<21 | 1<<16 | 1640 VCMPNGE_USPS Inst = 889<<21 | 1<<16 | 1641 VCMPNGE_USSD Inst = 890<<21 | 2<<16 | 1642 VCMPNGE_USSS Inst = 891<<21 | 2<<16 | 1644 VCMPNGEPD Inst = 892<<21 | 2<<16 | 1646 VCMPNGEPS Inst = 893<<21 | 1<<16 | 1648 VCMPNGESD Inst = 894<<21 | 2<<16 | 1649 VCMPNGESS Inst = 895<<21 | 2<<16 | 1651 VCMPNGT_UQPD Inst = 896<<21 | 1<<16 | 1653 VCMPNGT_UQPS Inst = 897<<21 | 1<<16 | 1654 VCMPNGT_UQSD Inst = 898<<21 | 2<<16 | 1655 VCMPNGT_UQSS Inst = 899<<21 | 2<<16 | 1657 VCMPNGT_USPD Inst = 900<<21 | 1<<16 | 1659 VCMPNGT_USPS Inst = 901<<21 | 1<<16 | 1660 VCMPNGT_USSD Inst = 902<<21 | 2<<16 | 1661 VCMPNGT_USSS Inst = 903<<21 | 2<<16 | 1663 VCMPNGTPD Inst = 904<<21 | 1<<16 | 1665 VCMPNGTPS Inst = 905<<21 | 1<<16 | 1666 VCMPNGTSD Inst = 906<<21 | 2<<16 | 1667 VCMPNGTSS Inst = 907<<21 | 2<<16 | 1669 VCMPNLE_UQPD Inst = 908<<21 | 1<<16 | 1671 VCMPNLE_UQPS Inst = 909<<21 | 1<<16 | 1672 VCMPNLE_UQSD Inst = 910<<21 | 2<<16 | 1673 VCMPNLE_UQSS Inst = 911<<21 | 2<<16 | 1675 VCMPNLE_USPD Inst = 912<<21 | 2<<16 | 1677 VCMPNLE_USPS Inst = 913<<21 | 1<<16 | 1679 VCMPNLE_USSD Inst = 914<<21 | 2<<16 | 1680 VCMPNLE_USSS Inst = 915<<21 | 2<<16 | 1682 VCMPNLEPD Inst = 916<<21 | 1<<16 | 1684 VCMPNLEPS Inst = 917<<21 | 1<<16 | 1685 VCMPNLESD Inst = 918<<21 | 2<<16 | 1686 VCMPNLESS Inst = 919<<21 | 2<<16 | 1688 VCMPNLT_UQPD Inst = 920<<21 | 2<<16 | 1690 VCMPNLT_UQPS Inst = 921<<21 | 1<<16 | 1692 VCMPNLT_UQSD Inst = 922<<21 | 2<<16 | 1693 VCMPNLT_UQSS Inst = 923<<21 | 2<<16 | 1695 VCMPNLT_USPD Inst = 924<<21 | 1<<16 | 1697 VCMPNLT_USPS Inst = 925<<21 | 1<<16 | 1698 VCMPNLT_USSD Inst = 926<<21 | 2<<16 | 1699 VCMPNLT_USSS Inst = 927<<21 | 2<<16 | 1701 VCMPNLTPD Inst = 928<<21 | 2<<16 | 1703 VCMPNLTPS Inst = 929<<21 | 1<<16 | 1705 VCMPNLTSD Inst = 930<<21 | 2<<16 | 1706 VCMPNLTSS Inst = 931<<21 | 2<<16 | 1708 VCMPORD_QPD Inst = 932<<21 | 2<<16 | 1710 VCMPORD_QPS Inst = 933<<21 | 1<<16 | 1712 VCMPORD_QSD Inst = 934<<21 | 2<<16 | 1713 VCMPORD_QSS Inst = 935<<21 | 2<<16 | 1715 VCMPORD_SPD Inst = 936<<21 | 2<<16 | 1717 VCMPORD_SPS Inst = 937<<21 | 1<<16 | 1719 VCMPORD_SSD Inst = 938<<21 | 2<<16 | 1720 VCMPORD_SSS Inst = 939<<21 | 2<<16 | 1722 VCMPORDPD Inst = 940<<21 | 2<<16 | 1724 VCMPORDPS Inst = 941<<21 | 1<<16 | 1726 VCMPORDSD Inst = 942<<21 | 2<<16 | 1727 VCMPORDSS Inst = 943<<21 | 2<<16 | 1729 VCMPPD Inst = 944<<21 | 1<<16 | 1731 VCMPPS Inst = 945<<21 | 1<<16 | 1732 VCMPSD Inst = 946<<21 | 2<<16 | 1733 VCMPSS Inst = 947<<21 | 2<<16 | 1735 VCMPTRUE_UQPD Inst = 948<<21 | 2<<16 | 1737 VCMPTRUE_UQPS Inst = 949<<21 | 1<<16 | 1739 VCMPTRUE_UQSD Inst = 950<<21 | 2<<16 | 1740 VCMPTRUE_UQSS Inst = 951<<21 | 2<<16 | 1742 VCMPTRUE_USPD Inst = 952<<21 | 1<<16 | 1744 VCMPTRUE_USPS Inst = 953<<21 | 1<<16 | 1745 VCMPTRUE_USSD Inst = 954<<21 | 2<<16 | 1746 VCMPTRUE_USSS Inst = 955<<21 | 2<<16 | 1748 VCMPTRUEPD Inst = 956<<21 | 1<<16 | 1750 VCMPTRUEPS Inst = 957<<21 | 1<<16 | 1751 VCMPTRUESD Inst = 958<<21 | 2<<16 | 1752 VCMPTRUESS Inst = 959<<21 | 2<<16 | 1754 VCMPUNORD_QPD Inst = 960<<21 | 1<<16 | 1756 VCMPUNORD_QPS Inst = 961<<21 | 1<<16 | 1757 VCMPUNORD_QSD Inst = 962<<21 | 2<<16 | 1758 VCMPUNORD_QSS Inst = 963<<21 | 2<<16 | 1760 VCMPUNORD_SPD Inst = 964<<21 | 1<<16 | 1762 VCMPUNORD_SPS Inst = 965<<21 | 1<<16 | 1763 VCMPUNORD_SSD Inst = 966<<21 | 2<<16 | 1764 VCMPUNORD_SSS Inst = 967<<21 | 2<<16 | 1766 VCMPUNORDPD Inst = 968<<21 | 2<<16 | 1768 VCMPUNORDPS Inst = 969<<21 | 1<<16 | 1770 VCMPUNORDSD Inst = 970<<21 | 2<<16 | 1771 VCMPUNORDSS Inst = 971<<21 | 2<<16 | 1773 VCOMISD Inst = 972<<21 | 2<<16 | 1775 VCOMISS Inst = 973<<21 | 2<<16 | 1777 VCVTDQ2PD Inst = 974<<21 | 2<<16 | 1779 VCVTDQ2PS Inst = 975<<21 | 1<<16 | 1781 VCVTPD2DQ Inst = 976<<21 | 2<<16 | 1782 VCVTPD2PS Inst = 977<<21 | 2<<16 | 1784 VCVTPH2PS Inst = 978<<21 | 2<<16 | 1786 VCVTPS2DQ Inst = 979<<21 | 1<<16 | 1788 VCVTPS2PD Inst = 980<<21 | 2<<16 | 1789 VCVTPS2PH Inst = 981<<21 | 2<<16 | 1791 VCVTSD2SI Inst = 982<<21 | 2<<16 | 1793 VCVTSD2SS Inst = 983<<21 | 2<<16 | 1795 VCVTSI2SD Inst = 984<<21 | 1<<16 | 1797 VCVTSI2SS Inst = 985<<21 | 1<<16 | 1798 VCVTSS2SD Inst = 986<<21 | 2<<16 | 1799 VCVTSS2SI Inst = 987<<21 | 2<<16 | 1801 VCVTTPD2DQ Inst = 988<<21 | 2<<16 | 1803 VCVTTPS2DQ Inst = 989<<21 | 1<<16 | 1805 VCVTTSD2SI Inst = 990<<21 | 2<<16 | 1806 VCVTTSS2SI Inst = 991<<21 | 2<<16 | 1808 VDIVPD Inst = 992<<21 | 1<<16 | 1810 VDIVPS Inst = 993<<21 | 1<<16 | 1811 VDIVSD Inst = 994<<21 | 2<<16 | 1812 VDIVSS Inst = 995<<21 | 2<<16 | 1814 VDPPD Inst = 996<<21 | 1<<16 | 1816 VDPPS Inst = 997<<21 | 1<<16 | 1817 VERR Inst = 998<<21 | 2<<16 | 1818 VERW Inst = 999<<21 | 2<<16 | 1820 VEXTRACTF128 Inst = 1000<<21 | 1<<16 | 1822 VEXTRACTI128 Inst = 1001<<21 | 1<<16 | 1823 VEXTRACTPS Inst = 1002<<21 | 1<<16 | 1824 VFMADD123PD Inst = 1003<<21 | 1<<16 | 1825 VFMADD123PS Inst = 1004<<21 | 1<<16 | 1826 VFMADD123SD Inst = 1005<<21 | 2<<16 | 1827 VFMADD123SS Inst = 1006<<21 | 2<<16 | 1829 VFMADD132PD Inst = 1007<<21 | 1<<16 | 1831 VFMADD132PS Inst = 1008<<21 | 1<<16 | 1832 VFMADD132SD Inst = 1009<<21 | 2<<16 | 1833 VFMADD132SS Inst = 1010<<21 | 2<<16 | 1835 VFMADD213PD Inst = 1011<<21 | 1<<16 | 1837 VFMADD213PS Inst = 1012<<21 | 1<<16 | 1838 VFMADD213SD Inst = 1013<<21 | 2<<16 | 1839 VFMADD213SS Inst = 1014<<21 | 2<<16 | 1841 VFMADD231PD Inst = 1015<<21 | 1<<16 | 1843 VFMADD231PS Inst = 1016<<21 | 1<<16 | 1844 VFMADD231SD Inst = 1017<<21 | 2<<16 | 1845 VFMADD231SS Inst = 1018<<21 | 2<<16 | 1847 VFMADD312PD Inst = 1019<<21 | 1<<16 | 1849 VFMADD312PS Inst = 1020<<21 | 1<<16 | 1850 VFMADD312SD Inst = 1021<<21 | 2<<16 | 1851 VFMADD312SS Inst = 1022<<21 | 2<<16 | 1853 VFMADD321PD Inst = 1023<<21 | 1<<16 | 1855 VFMADD321PS Inst = 1024<<21 | 1<<16 | 1856 VFMADD321SD Inst = 1025<<21 | 2<<16 | 1857 VFMADD321SS Inst = 1026<<21 | 2<<16 | 1859 VFMADDPD Inst = 1027<<21 | 2<<16 | 1861 VFMADDPS Inst = 1028<<21 | 2<<16 | 1863 VFMADDSD Inst = 1029<<21 | 3<<16 | 1865 VFMADDSS Inst = 1030<<21 | 3<<16 | 1868 VFMADDSUB123PD Inst = 1031<<21 | 1<<16 | 1871 VFMADDSUB123PS Inst = 1032<<21 | 1<<16 | 1872 VFMADDSUB132PD Inst = 1033<<21 | 1<<16 | 1873 VFMADDSUB132PS Inst = 1034<<21 | 1<<16 | 1874 VFMADDSUB213PD Inst = 1035<<21 | 1<<16 | 1875 VFMADDSUB213PS Inst = 1036<<21 | 1<<16 | 1876 VFMADDSUB231PD Inst = 1037<<21 | 1<<16 | 1877 VFMADDSUB231PS Inst = 1038<<21 | 1<<16 | 1878 VFMADDSUB312PD Inst = 1039<<21 | 1<<16 | 1879 VFMADDSUB312PS Inst = 1040<<21 | 1<<16 | 1880 VFMADDSUB321PD Inst = 1041<<21 | 1<<16 | 1881 VFMADDSUB321PS Inst = 1042<<21 | 1<<16 | 1882 VFMADDSUBPD Inst = 1043<<21 | 2<<16 | 1883 VFMADDSUBPS Inst = 1044<<21 | 2<<16 | 1885 VFMSUB123PD Inst = 1045<<21 | 1<<16 | 1887 VFMSUB123PS Inst = 1046<<21 | 1<<16 | 1888 VFMSUB123SD Inst = 1047<<21 | 2<<16 | 1889 VFMSUB123SS Inst = 1048<<21 | 2<<16 | 1891 VFMSUB132PD Inst = 1049<<21 | 1<<16 | 1893 VFMSUB132PS Inst = 1050<<21 | 1<<16 | 1894 VFMSUB132SD Inst = 1051<<21 | 2<<16 | 1895 VFMSUB132SS Inst = 1052<<21 | 2<<16 | 1897 VFMSUB213PD Inst = 1053<<21 | 1<<16 | 1899 VFMSUB213PS Inst = 1054<<21 | 1<<16 | 1900 VFMSUB213SD Inst = 1055<<21 | 2<<16 | 1901 VFMSUB213SS Inst = 1056<<21 | 2<<16 | 1903 VFMSUB231PD Inst = 1057<<21 | 1<<16 | 1905 VFMSUB231PS Inst = 1058<<21 | 1<<16 | 1906 VFMSUB231SD Inst = 1059<<21 | 2<<16 | 1907 VFMSUB231SS Inst = 1060<<21 | 2<<16 | 1909 VFMSUB312PD Inst = 1061<<21 | 1<<16 | 1911 VFMSUB312PS Inst = 1062<<21 | 1<<16 | 1912 VFMSUB312SD Inst = 1063<<21 | 2<<16 | 1913 VFMSUB312SS Inst = 1064<<21 | 2<<16 | 1915 VFMSUB321PD Inst = 1065<<21 | 1<<16 | 1917 VFMSUB321PS Inst = 1066<<21 | 1<<16 | 1918 VFMSUB321SD Inst = 1067<<21 | 2<<16 | 1919 VFMSUB321SS Inst = 1068<<21 | 2<<16 | 1921 VFMSUBADD123PD Inst = 1069<<21 | 1<<16 | 1923 VFMSUBADD123PS Inst = 1070<<21 | 1<<16 | 1924 VFMSUBADD132PD Inst = 1071<<21 | 1<<16 | 1925 VFMSUBADD132PS Inst = 1072<<21 | 1<<16 | 1926 VFMSUBADD213PD Inst = 1073<<21 | 1<<16 | 1927 VFMSUBADD213PS Inst = 1074<<21 | 1<<16 | 1928 VFMSUBADD231PD Inst = 1075<<21 | 1<<16 | 1929 VFMSUBADD231PS Inst = 1076<<21 | 1<<16 | 1930 VFMSUBADD312PD Inst = 1077<<21 | 1<<16 | 1931 VFMSUBADD312PS Inst = 1078<<21 | 1<<16 | 1932 VFMSUBADD321PD Inst = 1079<<21 | 1<<16 | 1933 VFMSUBADD321PS Inst = 1080<<21 | 1<<16 | 1934 VFMSUBADDPD Inst = 1081<<21 | 2<<16 | 1935 VFMSUBADDPS Inst = 1082<<21 | 2<<16 | 1937 VFMSUBPD Inst = 1083<<21 | 2<<16 | 1939 VFMSUBPS Inst = 1084<<21 | 2<<16 | 1941 VFMSUBSD Inst = 1085<<21 | 3<<16 | 1943 VFMSUBSS Inst = 1086<<21 | 3<<16 | 1946 VFNMADD123PD Inst = 1087<<21 | 1<<16 | 1949 VFNMADD123PS Inst = 1088<<21 | 1<<16 | 1950 VFNMADD123SD Inst = 1089<<21 | 2<<16 | 1951 VFNMADD123SS Inst = 1090<<21 | 2<<16 | 1953 VFNMADD132PD Inst = 1091<<21 | 1<<16 | 1955 VFNMADD132PS Inst = 1092<<21 | 1<<16 | 1956 VFNMADD132SD Inst = 1093<<21 | 2<<16 | 1957 VFNMADD132SS Inst = 1094<<21 | 2<<16 | 1959 VFNMADD213PD Inst = 1095<<21 | 1<<16 | 1961 VFNMADD213PS Inst = 1096<<21 | 1<<16 | 1962 VFNMADD213SD Inst = 1097<<21 | 2<<16 | 1963 VFNMADD213SS Inst = 1098<<21 | 2<<16 | 1965 VFNMADD231PD Inst = 1099<<21 | 1<<16 | 1967 VFNMADD231PS Inst = 1100<<21 | 1<<16 | 1968 VFNMADD231SD Inst = 1101<<21 | 2<<16 | 1969 VFNMADD231SS Inst = 1102<<21 | 2<<16 | 1971 VFNMADD312PD Inst = 1103<<21 | 1<<16 | 1973 VFNMADD312PS Inst = 1104<<21 | 1<<16 | 1974 VFNMADD312SD Inst = 1105<<21 | 2<<16 | 1975 VFNMADD312SS Inst = 1106<<21 | 2<<16 | 1977 VFNMADD321PD Inst = 1107<<21 | 1<<16 | 1979 VFNMADD321PS Inst = 1108<<21 | 1<<16 | 1980 VFNMADD321SD Inst = 1109<<21 | 2<<16 | 1981 VFNMADD321SS Inst = 1110<<21 | 2<<16 | 1983 VFNMADDPD Inst = 1111<<21 | 2<<16 | 1985 VFNMADDPS Inst = 1112<<21 | 2<<16 | 1987 VFNMADDSD Inst = 1113<<21 | 3<<16 | 1989 VFNMADDSS Inst = 1114<<21 | 3<<16 | 1992 VFNMSUB123PD Inst = 1115<<21 | 1<<16 | 1995 VFNMSUB123PS Inst = 1116<<21 | 1<<16 | 1996 VFNMSUB123SD Inst = 1117<<21 | 2<<16 | 1997 VFNMSUB123SS Inst = 1118<<21 | 2<<16 | 1999 VFNMSUB132PD Inst = 1119<<21 | 1<<16 | 2001 VFNMSUB132PS Inst = 1120<<21 | 1<<16 | 2002 VFNMSUB132SD Inst = 1121<<21 | 2<<16 | 2003 VFNMSUB132SS Inst = 1122<<21 | 2<<16 | 2005 VFNMSUB213PD Inst = 1123<<21 | 1<<16 | 2007 VFNMSUB213PS Inst = 1124<<21 | 1<<16 | 2008 VFNMSUB213SD Inst = 1125<<21 | 2<<16 | 2009 VFNMSUB213SS Inst = 1126<<21 | 2<<16 | 2011 VFNMSUB231PD Inst = 1127<<21 | 1<<16 | 2013 VFNMSUB231PS Inst = 1128<<21 | 1<<16 | 2014 VFNMSUB231SD Inst = 1129<<21 | 2<<16 | 2015 VFNMSUB231SS Inst = 1130<<21 | 2<<16 | 2017 VFNMSUB312PD Inst = 1131<<21 | 1<<16 | 2019 VFNMSUB312PS Inst = 1132<<21 | 1<<16 | 2020 VFNMSUB312SD Inst = 1133<<21 | 2<<16 | 2021 VFNMSUB312SS Inst = 1134<<21 | 2<<16 | 2023 VFNMSUB321PD Inst = 1135<<21 | 1<<16 | 2025 VFNMSUB321PS Inst = 1136<<21 | 1<<16 | 2026 VFNMSUB321SD Inst = 1137<<21 | 2<<16 | 2027 VFNMSUB321SS Inst = 1138<<21 | 2<<16 | 2029 VFNMSUBPD Inst = 1139<<21 | 2<<16 | 2031 VFNMSUBPS Inst = 1140<<21 | 2<<16 | 2033 VFNMSUBSD Inst = 1141<<21 | 3<<16 | 2035 VFNMSUBSS Inst = 1142<<21 | 3<<16 | 2038 VFRCZPD Inst = 1143<<21 | 1<<16 | 2041 VFRCZPS Inst = 1144<<21 | 1<<16 | 2042 VFRCZSD Inst = 1145<<21 | 2<<16 | 2043 VFRCZSS Inst = 1146<<21 | 2<<16 | 2045 VGATHERDPD Inst = 1147<<21 | 1<<16 | 2047 VGATHERDPS Inst = 1148<<21 | 1<<16 | 2048 VGATHERQPD Inst = 1149<<21 | 1<<16 | 2049 VGATHERQPS Inst = 1150<<21 | 1<<16 | 2050 VHADDPD Inst = 1151<<21 | 1<<16 | 2051 VHADDPS Inst = 1152<<21 | 1<<16 | 2052 VHSUBPD Inst = 1153<<21 | 1<<16 | 2053 VHSUBPS Inst = 1154<<21 | 1<<16 | 2054 VINSERTF128 Inst = 1155<<21 | 1<<16 | 2055 VINSERTI128 Inst = 1156<<21 | 1<<16 | 2056 VINSERTPS Inst = 1157<<21 | 2<<16 | 2057 VLDDQU Inst = 1158<<21 | 1<<16 | 2059 VLDMXCSR Inst = 1159<<21 | 1<<16 | 2060 VLDQQU Inst = 1160<<21 | 1<<16 | 2061 VMASKMOVDQU Inst = 1161<<21 | 1<<16 | 2062 VMASKMOVPD Inst = 1162<<21 | 2<<16 | 2063 VMASKMOVPS Inst = 1163<<21 | 2<<16 | 2065 VMAXPD Inst = 1164<<21 | 1<<16 | 2067 VMAXPS Inst = 1165<<21 | 1<<16 | 2068 VMAXSD Inst = 1166<<21 | 2<<16 | 2069 VMAXSS Inst = 1167<<21 | 2<<16 | 2071 VMCALL Inst = 1168<<21 | 1<<16 | 2073 VMCLEAR Inst = 1169<<21 | 1<<16 | 2074 VMFUNC Inst = 1170<<21 | 1<<16 | 2075 VMINPD Inst = 1171<<21 | 1<<16 | 2076 VMINPS Inst = 1172<<21 | 1<<16 | 2077 VMINSD Inst = 1173<<21 | 2<<16 | 2078 VMINSS Inst = 1174<<21 | 2<<16 | 2080 VMLAUNCH Inst = 1175<<21 | 1<<16 | 2082 VMLOAD Inst = 1176<<21 | 1<<16 | 2083 VMMCALL Inst = 1177<<21 | 1<<16 | 2084 VMOVAPD Inst = 1178<<21 | 3<<16 | 2085 VMOVAPS Inst = 1179<<21 | 3<<16 | 2088 VMOVD Inst = 1180<<21 | 2<<16 | 2091 VMOVDDUP Inst = 1181<<21 | 2<<16 | 2093 VMOVDQA Inst = 1182<<21 | 3<<16 | 2095 VMOVDQU Inst = 1183<<21 | 3<<16 | 2098 VMOVHLPS Inst = 1184<<21 | 1<<16 | 2101 VMOVHPD Inst = 1185<<21 | 2<<16 | 2102 VMOVHPS Inst = 1186<<21 | 2<<16 | 2104 VMOVLHPS Inst = 1187<<21 | 1<<16 | 2106 VMOVLPD Inst = 1188<<21 | 2<<16 | 2107 VMOVLPS Inst = 1189<<21 | 2<<16 | 2109 VMOVMSKPD Inst = 1190<<21 | 1<<16 | 2111 VMOVMSKPS Inst = 1191<<21 | 1<<16 | 2112 VMOVNTDQ Inst = 1192<<21 | 1<<16 | 2113 VMOVNTDQA Inst = 1193<<21 | 1<<16 | 2114 VMOVNTPD Inst = 1194<<21 | 1<<16 | 2115 VMOVNTPS Inst = 1195<<21 | 1<<16 | 2116 VMOVNTQQ Inst = 1196<<21 | 1<<16 | 2117 VMOVQ Inst = 1197<<21 | 6<<16 | 2118 VMOVQQA Inst = 1198<<21 | 2<<16 | 2124 VMOVQQU Inst = 1199<<21 | 2<<16 | 2126 VMOVSD Inst = 1200<<21 | 4<<16 | 2128 VMOVSHDUP Inst = 1201<<21 | 1<<16 | 2132 VMOVSLDUP Inst = 1202<<21 | 1<<16 | 2133 VMOVSS Inst = 1203<<21 | 4<<16 | 2134 VMOVUPD Inst = 1204<<21 | 3<<16 | 2138 VMOVUPS Inst = 1205<<21 | 3<<16 | 2141 VMPSADBW Inst = 1206<<21 | 1<<16 | 2144 VMPTRLD Inst = 1207<<21 | 1<<16 | 2145 VMPTRST Inst = 1208<<21 | 1<<16 | 2146 VMREAD Inst = 1209<<21 | 1<<16 | 2147 VMRESUME Inst = 1210<<21 | 1<<16 | 2148 VMRUN Inst = 1211<<21 | 1<<16 | 2149 VMSAVE Inst = 1212<<21 | 1<<16 | 2150 VMULPD Inst = 1213<<21 | 1<<16 | 2151 VMULPS Inst = 1214<<21 | 1<<16 | 2152 VMULSD Inst = 1215<<21 | 2<<16 | 2153 VMULSS Inst = 1216<<21 | 2<<16 | 2155 VMWRITE Inst = 1217<<21 | 1<<16 | 2157 VMXOFF Inst = 1218<<21 | 1<<16 | 2158 VMXON Inst = 1219<<21 | 1<<16 | 2159 VORPD Inst = 1220<<21 | 1<<16 | 2160 VORPS Inst = 1221<<21 | 1<<16 | 2161 VPABSB Inst = 1222<<21 | 1<<16 | 2162 VPABSD Inst = 1223<<21 | 1<<16 | 2163 VPABSW Inst = 1224<<21 | 1<<16 | 2164 VPACKSSDW Inst = 1225<<21 | 1<<16 | 2165 VPACKSSWB Inst = 1226<<21 | 1<<16 | 2166 VPACKUSDW Inst = 1227<<21 | 1<<16 | 2167 VPACKUSWB Inst = 1228<<21 | 1<<16 | 2168 VPADDB Inst = 1229<<21 | 1<<16 | 2169 VPADDD Inst = 1230<<21 | 1<<16 | 2170 VPADDQ Inst = 1231<<21 | 1<<16 | 2171 VPADDSB Inst = 1232<<21 | 1<<16 | 2172 VPADDSW Inst = 1233<<21 | 1<<16 | 2173 VPADDUSB Inst = 1234<<21 | 1<<16 | 2174 VPADDUSW Inst = 1235<<21 | 1<<16 | 2175 VPADDW Inst = 1236<<21 | 1<<16 | 2176 VPALIGNR Inst = 1237<<21 | 1<<16 | 2177 VPAND Inst = 1238<<21 | 1<<16 | 2178 VPANDN Inst = 1239<<21 | 1<<16 | 2179 VPAVGB Inst = 1240<<21 | 1<<16 | 2180 VPAVGW Inst = 1241<<21 | 1<<16 | 2181 VPBLENDD Inst = 1242<<21 | 1<<16 | 2182 VPBLENDVB Inst = 1243<<21 | 1<<16 | 2183 VPBLENDW Inst = 1244<<21 | 1<<16 | 2184 VPBROADCASTB Inst = 1245<<21 | 2<<16 | 2185 VPBROADCASTD Inst = 1246<<21 | 2<<16 | 2187 VPBROADCASTQ Inst = 1247<<21 | 3<<16 | 2189 VPBROADCASTW Inst = 1248<<21 | 2<<16 | 2192 VPCLMULHQHQDQ Inst = 1249<<21 | 1<<16 | 2194 VPCLMULHQLQDQ Inst = 1250<<21 | 1<<16 | 2195 VPCLMULLQHQDQ Inst = 1251<<21 | 1<<16 | 2196 VPCLMULLQLQDQ Inst = 1252<<21 | 1<<16 | 2197 VPCLMULQDQ Inst = 1253<<21 | 1<<16 | 2198 VPCMOV Inst = 1254<<21 | 2<<16 | 2199 VPCMPEQB Inst = 1255<<21 | 1<<16 | 2201 VPCMPEQD Inst = 1256<<21 | 1<<16 | 2202 VPCMPEQQ Inst = 1257<<21 | 1<<16 | 2203 VPCMPEQW Inst = 1258<<21 | 1<<16 | 2204 VPCMPESTRI Inst = 1259<<21 | 1<<16 | 2205 VPCMPESTRM Inst = 1260<<21 | 1<<16 | 2206 VPCMPGTB Inst = 1261<<21 | 1<<16 | 2207 VPCMPGTD Inst = 1262<<21 | 1<<16 | 2208 VPCMPGTQ Inst = 1263<<21 | 1<<16 | 2209 VPCMPGTW Inst = 1264<<21 | 1<<16 | 2210 VPCMPISTRI Inst = 1265<<21 | 1<<16 | 2211 VPCMPISTRM Inst = 1266<<21 | 1<<16 | 2212 VPCOMB Inst = 1267<<21 | 1<<16 | 2213 VPCOMD Inst = 1268<<21 | 1<<16 | 2214 VPCOMQ Inst = 1269<<21 | 1<<16 | 2215 VPCOMUB Inst = 1270<<21 | 1<<16 | 2216 VPCOMUD Inst = 1271<<21 | 1<<16 | 2217 VPCOMUQ Inst = 1272<<21 | 1<<16 | 2218 VPCOMUW Inst = 1273<<21 | 1<<16 | 2219 VPCOMW Inst = 1274<<21 | 1<<16 | 2220 VPERM2F128 Inst = 1275<<21 | 1<<16 | 2221 VPERM2I128 Inst = 1276<<21 | 1<<16 | 2222 VPERMD Inst = 1277<<21 | 1<<16 | 2223 VPERMILPD Inst = 1278<<21 | 2<<16 | 2224 VPERMILPS Inst = 1279<<21 | 2<<16 | 2226 VPERMPD Inst = 1280<<21 | 1<<16 | 2228 VPERMPS Inst = 1281<<21 | 1<<16 | 2229 VPERMQ Inst = 1282<<21 | 1<<16 | 2230 VPEXTRB Inst = 1283<<21 | 3<<16 | 2231 VPEXTRD Inst = 1284<<21 | 2<<16 | 2234 VPEXTRQ Inst = 1285<<21 | 1<<16 | 2236 VPEXTRW Inst = 1286<<21 | 5<<16 | 2237 VPGATHERDD Inst = 1287<<21 | 1<<16 | 2242 VPGATHERDQ Inst = 1288<<21 | 1<<16 | 2243 VPGATHERQD Inst = 1289<<21 | 1<<16 | 2244 VPGATHERQQ Inst = 1290<<21 | 1<<16 | 2245 VPHADDBD Inst = 1291<<21 | 1<<16 | 2246 VPHADDBQ Inst = 1292<<21 | 1<<16 | 2247 VPHADDBW Inst = 1293<<21 | 1<<16 | 2248 VPHADDD Inst = 1294<<21 | 1<<16 | 2249 VPHADDDQ Inst = 1295<<21 | 1<<16 | 2250 VPHADDSW Inst = 1296<<21 | 1<<16 | 2251 VPHADDUBD Inst = 1297<<21 | 1<<16 | 2252 VPHADDUBQ Inst = 1298<<21 | 1<<16 | 2253 VPHADDUBW Inst = 1299<<21 | 1<<16 | 2254 VPHADDUDQ Inst = 1300<<21 | 1<<16 | 2255 VPHADDUWD Inst = 1301<<21 | 1<<16 | 2256 VPHADDUWQ Inst = 1302<<21 | 1<<16 | 2257 VPHADDW Inst = 1303<<21 | 1<<16 | 2258 VPHADDWD Inst = 1304<<21 | 1<<16 | 2259 VPHADDWQ Inst = 1305<<21 | 1<<16 | 2260 VPHMINPOSUW Inst = 1306<<21 | 1<<16 | 2261 VPHSUBBW Inst = 1307<<21 | 1<<16 | 2262 VPHSUBD Inst = 1308<<21 | 1<<16 | 2263 VPHSUBDQ Inst = 1309<<21 | 1<<16 | 2264 VPHSUBSW Inst = 1310<<21 | 1<<16 | 2265 VPHSUBW Inst = 1311<<21 | 1<<16 | 2266 VPHSUBWD Inst = 1312<<21 | 1<<16 | 2267 VPINSRB Inst = 1313<<21 | 2<<16 | 2268 VPINSRD Inst = 1314<<21 | 1<<16 | 2270 VPINSRQ Inst = 1315<<21 | 1<<16 | 2271 VPINSRW Inst = 1316<<21 | 2<<16 | 2272 VPMACSDD Inst = 1317<<21 | 1<<16 | 2274 VPMACSDQH Inst = 1318<<21 | 1<<16 | 2275 VPMACSDQL Inst = 1319<<21 | 1<<16 | 2276 VPMACSSDD Inst = 1320<<21 | 1<<16 | 2277 VPMACSSDQH Inst = 1321<<21 | 1<<16 | 2278 VPMACSSDQL Inst = 1322<<21 | 1<<16 | 2279 VPMACSSWD Inst = 1323<<21 | 1<<16 | 2280 VPMACSSWW Inst = 1324<<21 | 1<<16 | 2281 VPMACSWD Inst = 1325<<21 | 1<<16 | 2282 VPMACSWW Inst = 1326<<21 | 1<<16 | 2283 VPMADCSSWD Inst = 1327<<21 | 1<<16 | 2284 VPMADCSWD Inst = 1328<<21 | 1<<16 | 2285 VPMADDUBSW Inst = 1329<<21 | 1<<16 | 2286 VPMADDWD Inst = 1330<<21 | 1<<16 | 2287 VPMASKMOVD Inst = 1331<<21 | 2<<16 | 2288 VPMASKMOVQ Inst = 1332<<21 | 2<<16 | 2290 VPMAXSB Inst = 1333<<21 | 1<<16 | 2292 VPMAXSD Inst = 1334<<21 | 1<<16 | 2293 VPMAXSW Inst = 1335<<21 | 1<<16 | 2294 VPMAXUB Inst = 1336<<21 | 1<<16 | 2295 VPMAXUD Inst = 1337<<21 | 1<<16 | 2296 VPMAXUW Inst = 1338<<21 | 1<<16 | 2297 VPMINSB Inst = 1339<<21 | 1<<16 | 2298 VPMINSD Inst = 1340<<21 | 1<<16 | 2299 VPMINSW Inst = 1341<<21 | 1<<16 | 2300 VPMINUB Inst = 1342<<21 | 1<<16 | 2301 VPMINUD Inst = 1343<<21 | 1<<16 | 2302 VPMINUW Inst = 1344<<21 | 1<<16 | 2303 VPMOVMSKB Inst = 1345<<21 | 1<<16 | 2304 VPMOVSXBD Inst = 1346<<21 | 2<<16 | 2305 VPMOVSXBQ Inst = 1347<<21 | 2<<16 | 2307 VPMOVSXBW Inst = 1348<<21 | 2<<16 | 2309 VPMOVSXDQ Inst = 1349<<21 | 2<<16 | 2311 VPMOVSXWD Inst = 1350<<21 | 2<<16 | 2313 VPMOVSXWQ Inst = 1351<<21 | 2<<16 | 2315 VPMOVZXBD Inst = 1352<<21 | 2<<16 | 2317 VPMOVZXBQ Inst = 1353<<21 | 2<<16 | 2319 VPMOVZXBW Inst = 1354<<21 | 2<<16 | 2321 VPMOVZXDQ Inst = 1355<<21 | 2<<16 | 2323 VPMOVZXWD Inst = 1356<<21 | 2<<16 | 2325 VPMOVZXWQ Inst = 1357<<21 | 2<<16 | 2327 VPMULDQ Inst = 1358<<21 | 1<<16 | 2329 VPMULHRSW Inst = 1359<<21 | 1<<16 | 2330 VPMULHUW Inst = 1360<<21 | 1<<16 | 2331 VPMULHW Inst = 1361<<21 | 1<<16 | 2332 VPMULLD Inst = 1362<<21 | 1<<16 | 2333 VPMULLW Inst = 1363<<21 | 1<<16 | 2334 VPMULUDQ Inst = 1364<<21 | 1<<16 | 2335 VPOR Inst = 1365<<21 | 1<<16 | 2336 VPPERM Inst = 1366<<21 | 2<<16 | 2337 VPROTB Inst = 1367<<21 | 3<<16 | 2339 VPROTD Inst = 1368<<21 | 3<<16 | 2342 VPROTQ Inst = 1369<<21 | 3<<16 | 2345 VPROTW Inst = 1370<<21 | 3<<16 | 2348 VPSADBW Inst = 1371<<21 | 1<<16 | 2351 VPSHAB Inst = 1372<<21 | 2<<16 | 2352 VPSHAD Inst = 1373<<21 | 2<<16 | 2354 VPSHAQ Inst = 1374<<21 | 2<<16 | 2356 VPSHAW Inst = 1375<<21 | 2<<16 | 2358 VPSHLB Inst = 1376<<21 | 2<<16 | 2360 VPSHLD Inst = 1377<<21 | 2<<16 | 2362 VPSHLQ Inst = 1378<<21 | 2<<16 | 2364 VPSHLW Inst = 1379<<21 | 2<<16 | 2366 VPSHUFB Inst = 1380<<21 | 1<<16 | 2368 VPSHUFD Inst = 1381<<21 | 1<<16 | 2369 VPSHUFHW Inst = 1382<<21 | 1<<16 | 2370 VPSHUFLW Inst = 1383<<21 | 1<<16 | 2371 VPSIGNB Inst = 1384<<21 | 1<<16 | 2372 VPSIGND Inst = 1385<<21 | 1<<16 | 2373 VPSIGNW Inst = 1386<<21 | 1<<16 | 2374 VPSLLD Inst = 1387<<21 | 2<<16 | 2375 VPSLLDQ Inst = 1388<<21 | 1<<16 | 2377 VPSLLQ Inst = 1389<<21 | 2<<16 | 2378 VPSLLVD Inst = 1390<<21 | 1<<16 | 2380 VPSLLVQ Inst = 1391<<21 | 1<<16 | 2381 VPSLLW Inst = 1392<<21 | 2<<16 | 2382 VPSRAD Inst = 1393<<21 | 2<<16 | 2384 VPSRAVD Inst = 1394<<21 | 1<<16 | 2386 VPSRAW Inst = 1395<<21 | 2<<16 | 2387 VPSRLD Inst = 1396<<21 | 2<<16 | 2389 VPSRLDQ Inst = 1397<<21 | 1<<16 | 2391 VPSRLQ Inst = 1398<<21 | 2<<16 | 2392 VPSRLVD Inst = 1399<<21 | 1<<16 | 2394 VPSRLVQ Inst = 1400<<21 | 1<<16 | 2395 VPSRLW Inst = 1401<<21 | 2<<16 | 2396 VPSUBB Inst = 1402<<21 | 1<<16 | 2398 VPSUBD Inst = 1403<<21 | 1<<16 | 2399 VPSUBQ Inst = 1404<<21 | 1<<16 | 2400 VPSUBSB Inst = 1405<<21 | 1<<16 | 2401 VPSUBSW Inst = 1406<<21 | 1<<16 | 2402 VPSUBUSB Inst = 1407<<21 | 1<<16 | 2403 VPSUBUSW Inst = 1408<<21 | 1<<16 | 2404 VPSUBW Inst = 1409<<21 | 1<<16 | 2405 VPTEST Inst = 1410<<21 | 1<<16 | 2406 VPUNPCKHBW Inst = 1411<<21 | 1<<16 | 2407 VPUNPCKHDQ Inst = 1412<<21 | 1<<16 | 2408 VPUNPCKHQDQ Inst = 1413<<21 | 1<<16 | 2409 VPUNPCKHWD Inst = 1414<<21 | 1<<16 | 2410 VPUNPCKLBW Inst = 1415<<21 | 1<<16 | 2411 VPUNPCKLDQ Inst = 1416<<21 | 1<<16 | 2412 VPUNPCKLQDQ Inst = 1417<<21 | 1<<16 | 2413 VPUNPCKLWD Inst = 1418<<21 | 1<<16 | 2414 VPXOR Inst = 1419<<21 | 1<<16 | 2415 VRCPPS Inst = 1420<<21 | 1<<16 | 2416 VRCPSS Inst = 1421<<21 | 2<<16 | 2417 VROUNDPD Inst = 1422<<21 | 1<<16 | 2419 VROUNDPS Inst = 1423<<21 | 1<<16 | 2420 VROUNDSD Inst = 1424<<21 | 2<<16 | 2421 VROUNDSS Inst = 1425<<21 | 2<<16 | 2423 VRSQRTPS Inst = 1426<<21 | 1<<16 | 2425 VRSQRTSS Inst = 1427<<21 | 2<<16 | 2426 VSHUFPD Inst = 1428<<21 | 1<<16 | 2428 VSHUFPS Inst = 1429<<21 | 1<<16 | 2429 VSQRTPD Inst = 1430<<21 | 1<<16 | 2430 VSQRTPS Inst = 1431<<21 | 1<<16 | 2431 VSQRTSD Inst = 1432<<21 | 2<<16 | 2432 VSQRTSS Inst = 1433<<21 | 2<<16 | 2434 VSTMXCSR Inst = 1434<<21 | 1<<16 | 2436 VSUBPD Inst = 1435<<21 | 1<<16 | 2437 VSUBPS Inst = 1436<<21 | 1<<16 | 2438 VSUBSD Inst = 1437<<21 | 2<<16 | 2439 VSUBSS Inst = 1438<<21 | 2<<16 | 2441 VTESTPD Inst = 1439<<21 | 1<<16 | 2443 VTESTPS Inst = 1440<<21 | 1<<16 | 2444 VUCOMISD Inst = 1441<<21 | 2<<16 | 2445 VUCOMISS Inst = 1442<<21 | 2<<16 | 2447 VUNPCKHPD Inst = 1443<<21 | 1<<16 | 2449 VUNPCKHPS Inst = 1444<<21 | 1<<16 | 2450 VUNPCKLPD Inst = 1445<<21 | 1<<16 | 2451 VUNPCKLPS Inst = 1446<<21 | 1<<16 | 2452 VXORPD Inst = 1447<<21 | 1<<16 | 2453 VXORPS Inst = 1448<<21 | 1<<16 | 2454 VZEROALL Inst = 1449<<21 | 1<<16 | 2455 VZEROUPPER Inst = 1450<<21 | 1<<16 | 2456 )
func Cmovcc ¶
func Cmovcc(cc ConditionCode) Inst
Get the conditional-move instruction for a condition code.
func Jcc ¶
func Jcc(cc ConditionCode) Inst
Get the conditional-jump instruction for a condition code.
func Setcc ¶
func Setcc(cc ConditionCode) Inst
Get the conditional-set instruction for a condition code.
type InstMatcher ¶
type InstMatcher struct {
// contains filtered or unexported fields
}
InstMatcher finds valid encodings for an instruction with arguments.
func NewInstMatcher ¶
func NewInstMatcher() *InstMatcher
Create an instruction matcher with all CPU features enabled by default.
func (*InstMatcher) AddrSize ¶
func (m *InstMatcher) AddrSize() int
Get the instruction's address size.
func (*InstMatcher) AllMatches ¶
func (m *InstMatcher) AllMatches(inst Inst, args ...Arg) ([]InstMatcher, error)
Find all matching encodings for an instruction. If no matches are found, ErrNoMatch will be returned.
func (*InstMatcher) DisableFeature ¶
func (m *InstMatcher) DisableFeature(feature feats.Feature)
Control the allowable CPU feature-set for instruction-matching.
See package x64/feats for all available CPU features.
func (*InstMatcher) EnableFeature ¶
func (m *InstMatcher) EnableFeature(feature feats.Feature)
Control the allowable CPU feature-set for instruction-matching.
See package x64/feats for all available CPU features.
func (*InstMatcher) EncodingId ¶
func (m *InstMatcher) EncodingId() uint
Get the instruction's unique encoding ID.
func (*InstMatcher) Features ¶
func (m *InstMatcher) Features() feats.Feature
Get the current, allowable CPU feature-set for instruction-matching.
See package x64/feats for all available CPU features.
func (*InstMatcher) HasOpcodeInImmediate ¶
func (m *InstMatcher) HasOpcodeInImmediate() bool
Check if the instruction encodes the final opcode byte in the immediate position, like 3DNow! ops.
func (*InstMatcher) HasOpcodeRegArg ¶
func (m *InstMatcher) HasOpcodeRegArg() bool
Check if a register argument will be encoded in the last byte of the instruction's opcode.
func (*InstMatcher) InstFeatures ¶
func (m *InstMatcher) InstFeatures() feats.Feature
Get CPU features required by the instruction.
func (*InstMatcher) IsVEX ¶
func (m *InstMatcher) IsVEX() bool
Check if the instruction is part of the VEX instruction set.
func (*InstMatcher) IsXOP ¶
func (m *InstMatcher) IsXOP() bool
Check if the instruction is part of the XOP instruction set.
func (*InstMatcher) MI ¶
func (m *InstMatcher) MI(inst Inst, dst Mem, imm ImmArg) error
Find an encoding for inst with a memory destination and immediate. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) MR ¶
func (m *InstMatcher) MR(inst Inst, dst Mem, src Reg) error
Find an encoding for inst with a memory destination and register source. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) MRI ¶
Find an encoding for inst with a memory destination, register source, and immediate. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) OperandSize ¶
func (m *InstMatcher) OperandSize() int
Get the instruction's operand size.
func (*InstMatcher) RI ¶
func (m *InstMatcher) RI(inst Inst, dst Reg, imm ImmArg) error
Find an encoding for inst with a register destination and immediate. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) RM ¶
func (m *InstMatcher) RM(inst Inst, dst Reg, src Mem) error
Find an encoding for inst with a register destination and memory source. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) RMI ¶
Find an encoding for inst with a register destination, memory source, and immediate. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) RR ¶
func (m *InstMatcher) RR(inst Inst, dst, src Reg) error
Find an encoding for inst with a register destination and register source. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) RRI ¶
func (m *InstMatcher) RRI(inst Inst, dst, src Reg, imm ImmArg) error
Find an encoding for inst with a register destination, register source, and immediate. If no matching instruction-encoding is found, ErrNoMatch will be returned.
func (*InstMatcher) SetFeatures ¶
func (m *InstMatcher) SetFeatures(enabledFeatures feats.Feature)
Restrict the allowable CPU feature-set for instruction-matching.
See package x64/feats for all available CPU features.
type Label ¶
type Label struct {
// contains filtered or unexported fields
}
Label is a reference to a label.
Label implements LabelArg and DispArg.
func (Label) Disp16 ¶
Reference the label as a 16-bit relative displacement from the current instruction pointer, with additional displacement provided by d.
func (Label) Disp32 ¶
Reference the label as a 32-bit relative displacement from the current instruction pointer, with additional displacement provided by d.
func (Label) Disp8 ¶
Reference the label as an 8-bit relative displacement from the current instruction pointer, with additional displacement provided by d.
func (Label) Int32 ¶
Get the additional displacement for the label reference, which is always 0. Use LabelDisp for additional displacement.
func (Label) Rel16 ¶
Reference the label as a 16-bit relative displacement from the current instruction pointer.
type Label16 ¶
type Label16 uint16
Label16 is a 16-bit displacement to a label.
Label16 implements LabelArg and DispArg.
type Label32 ¶
type Label32 uint16
Label32 is a 32-bit displacement to a label.
Label32 implements LabelArg and DispArg.
type Label8 ¶
type Label8 uint16
Label8 is an 8-bit displacement to a label.
Label8 implements LabelArg and DispArg.
type LabelArg ¶
type LabelArg interface { DispArg // contains filtered or unexported methods }
LabelArg represents a label reference, with or without additional displacement.
Any Label, Label8, Label16, Label32, or LabelDisp value implements LabelArg and DispArg.
type LabelDisp ¶
type LabelDisp struct {
// contains filtered or unexported fields
}
LabelDisp is a reference to a label with additional displacement.
LabelDisp implements LabelArg and DispArg.
type Mem ¶
type Mem struct { Disp DispArg Base Reg Index Reg Scale uint8 Width uint8 // contains filtered or unexported fields }
Mem is a memory-reference argument. Base (or Index) may be RIP for RIP-relative addressing.
Mem implements Arg.
type Reg ¶
type Reg uint32
Reg is a register argument with a specific width and family. All registers have a number which distinguishes them within their family, with the exception of the IP/EIP/RIP registers.
Reg implements RegArg.
const ( // 8-bit AH Reg = Reg(1<<16 | REG_HIGHBYTE<<8 | 4) CH Reg = Reg(1<<16 | REG_HIGHBYTE<<8 | 5) DH Reg = Reg(1<<16 | REG_HIGHBYTE<<8 | 6) BH Reg = Reg(1<<16 | REG_HIGHBYTE<<8 | 7) AL Reg = Reg(1<<16 | REG_LEGACY<<8 | 0) CL Reg = Reg(1<<16 | REG_LEGACY<<8 | 1) DL Reg = Reg(1<<16 | REG_LEGACY<<8 | 2) BL Reg = Reg(1<<16 | REG_LEGACY<<8 | 3) SPB Reg = Reg(1<<16 | REG_LEGACY<<8 | 4) BPB Reg = Reg(1<<16 | REG_LEGACY<<8 | 5) SIB Reg = Reg(1<<16 | REG_LEGACY<<8 | 6) DIB Reg = Reg(1<<16 | REG_LEGACY<<8 | 7) R8B Reg = Reg(1<<16 | REG_LEGACY<<8 | 8) R9B Reg = Reg(1<<16 | REG_LEGACY<<8 | 9) R10B Reg = Reg(1<<16 | REG_LEGACY<<8 | 10) R11B Reg = Reg(1<<16 | REG_LEGACY<<8 | 11) R12B Reg = Reg(1<<16 | REG_LEGACY<<8 | 12) R13B Reg = Reg(1<<16 | REG_LEGACY<<8 | 13) R14B Reg = Reg(1<<16 | REG_LEGACY<<8 | 14) R15B Reg = Reg(1<<16 | REG_LEGACY<<8 | 15) // 16-bit AX Reg = Reg(2<<16 | REG_LEGACY<<8 | 0) CX Reg = Reg(2<<16 | REG_LEGACY<<8 | 1) DX Reg = Reg(2<<16 | REG_LEGACY<<8 | 2) BX Reg = Reg(2<<16 | REG_LEGACY<<8 | 3) SP Reg = Reg(2<<16 | REG_LEGACY<<8 | 4) BP Reg = Reg(2<<16 | REG_LEGACY<<8 | 5) SI Reg = Reg(2<<16 | REG_LEGACY<<8 | 6) DI Reg = Reg(2<<16 | REG_LEGACY<<8 | 7) R8W Reg = Reg(2<<16 | REG_LEGACY<<8 | 8) R9W Reg = Reg(2<<16 | REG_LEGACY<<8 | 9) R10W Reg = Reg(2<<16 | REG_LEGACY<<8 | 10) R11W Reg = Reg(2<<16 | REG_LEGACY<<8 | 11) R12W Reg = Reg(2<<16 | REG_LEGACY<<8 | 12) R13W Reg = Reg(2<<16 | REG_LEGACY<<8 | 13) R14W Reg = Reg(2<<16 | REG_LEGACY<<8 | 14) R15W Reg = Reg(2<<16 | REG_LEGACY<<8 | 15) // 32-bit EAX Reg = Reg(4<<16 | REG_LEGACY<<8 | 0) ECX Reg = Reg(4<<16 | REG_LEGACY<<8 | 1) EDX Reg = Reg(4<<16 | REG_LEGACY<<8 | 2) EBX Reg = Reg(4<<16 | REG_LEGACY<<8 | 3) ESP Reg = Reg(4<<16 | REG_LEGACY<<8 | 4) EBP Reg = Reg(4<<16 | REG_LEGACY<<8 | 5) ESI Reg = Reg(4<<16 | REG_LEGACY<<8 | 6) EDI Reg = Reg(4<<16 | REG_LEGACY<<8 | 7) R8L Reg = Reg(4<<16 | REG_LEGACY<<8 | 8) R9L Reg = Reg(4<<16 | REG_LEGACY<<8 | 9) R10L Reg = Reg(4<<16 | REG_LEGACY<<8 | 10) R11L Reg = Reg(4<<16 | REG_LEGACY<<8 | 11) R12L Reg = Reg(4<<16 | REG_LEGACY<<8 | 12) R13L Reg = Reg(4<<16 | REG_LEGACY<<8 | 13) R14L Reg = Reg(4<<16 | REG_LEGACY<<8 | 14) R15L Reg = Reg(4<<16 | REG_LEGACY<<8 | 15) // 64-bit RAX Reg = Reg(8<<16 | REG_LEGACY<<8 | 0) RCX Reg = Reg(8<<16 | REG_LEGACY<<8 | 1) RDX Reg = Reg(8<<16 | REG_LEGACY<<8 | 2) RBX Reg = Reg(8<<16 | REG_LEGACY<<8 | 3) RSP Reg = Reg(8<<16 | REG_LEGACY<<8 | 4) RBP Reg = Reg(8<<16 | REG_LEGACY<<8 | 5) RSI Reg = Reg(8<<16 | REG_LEGACY<<8 | 6) RDI Reg = Reg(8<<16 | REG_LEGACY<<8 | 7) R8 Reg = Reg(8<<16 | REG_LEGACY<<8 | 8) R9 Reg = Reg(8<<16 | REG_LEGACY<<8 | 9) R10 Reg = Reg(8<<16 | REG_LEGACY<<8 | 10) R11 Reg = Reg(8<<16 | REG_LEGACY<<8 | 11) R12 Reg = Reg(8<<16 | REG_LEGACY<<8 | 12) R13 Reg = Reg(8<<16 | REG_LEGACY<<8 | 13) R14 Reg = Reg(8<<16 | REG_LEGACY<<8 | 14) R15 Reg = Reg(8<<16 | REG_LEGACY<<8 | 15) // Instruction pointer. IP Reg = Reg(2<<16 | REG_RIP<<8 | 0) // 16-bit EIP Reg = Reg(4<<16 | REG_RIP<<8 | 0) // 32-bit RIP Reg = Reg(8<<16 | REG_RIP<<8 | 0) // 64-bit // 387 floating point registers. F0 Reg = Reg(10<<16 | REG_FP<<8 | 0) F1 Reg = Reg(10<<16 | REG_FP<<8 | 1) F2 Reg = Reg(10<<16 | REG_FP<<8 | 2) F3 Reg = Reg(10<<16 | REG_FP<<8 | 3) F4 Reg = Reg(10<<16 | REG_FP<<8 | 4) F5 Reg = Reg(10<<16 | REG_FP<<8 | 5) F6 Reg = Reg(10<<16 | REG_FP<<8 | 6) F7 Reg = Reg(10<<16 | REG_FP<<8 | 7) // MMX registers. M0 Reg = Reg(8<<16 | REG_MMX<<8 | 0) M1 Reg = Reg(8<<16 | REG_MMX<<8 | 1) M2 Reg = Reg(8<<16 | REG_MMX<<8 | 2) M3 Reg = Reg(8<<16 | REG_MMX<<8 | 3) M4 Reg = Reg(8<<16 | REG_MMX<<8 | 4) M5 Reg = Reg(8<<16 | REG_MMX<<8 | 5) M6 Reg = Reg(8<<16 | REG_MMX<<8 | 6) M7 Reg = Reg(8<<16 | REG_MMX<<8 | 7) // XMM registers. X0 Reg = Reg(16<<16 | REG_XMM<<8 | 0) X1 Reg = Reg(16<<16 | REG_XMM<<8 | 1) X2 Reg = Reg(16<<16 | REG_XMM<<8 | 2) X3 Reg = Reg(16<<16 | REG_XMM<<8 | 3) X4 Reg = Reg(16<<16 | REG_XMM<<8 | 4) X5 Reg = Reg(16<<16 | REG_XMM<<8 | 5) X6 Reg = Reg(16<<16 | REG_XMM<<8 | 6) X7 Reg = Reg(16<<16 | REG_XMM<<8 | 7) X8 Reg = Reg(16<<16 | REG_XMM<<8 | 8) X9 Reg = Reg(16<<16 | REG_XMM<<8 | 9) X10 Reg = Reg(16<<16 | REG_XMM<<8 | 10) X11 Reg = Reg(16<<16 | REG_XMM<<8 | 11) X12 Reg = Reg(16<<16 | REG_XMM<<8 | 12) X13 Reg = Reg(16<<16 | REG_XMM<<8 | 13) X14 Reg = Reg(16<<16 | REG_XMM<<8 | 14) X15 Reg = Reg(16<<16 | REG_XMM<<8 | 15) // YMM registers. Y0 Reg = Reg(32<<16 | REG_YMM<<8 | 0) Y1 Reg = Reg(32<<16 | REG_YMM<<8 | 1) Y2 Reg = Reg(32<<16 | REG_YMM<<8 | 2) Y3 Reg = Reg(32<<16 | REG_YMM<<8 | 3) Y4 Reg = Reg(32<<16 | REG_YMM<<8 | 4) Y5 Reg = Reg(32<<16 | REG_YMM<<8 | 5) Y6 Reg = Reg(32<<16 | REG_YMM<<8 | 6) Y7 Reg = Reg(32<<16 | REG_YMM<<8 | 7) Y8 Reg = Reg(32<<16 | REG_YMM<<8 | 8) Y9 Reg = Reg(32<<16 | REG_YMM<<8 | 9) Y10 Reg = Reg(32<<16 | REG_YMM<<8 | 10) Y11 Reg = Reg(32<<16 | REG_YMM<<8 | 11) Y12 Reg = Reg(32<<16 | REG_YMM<<8 | 12) Y13 Reg = Reg(32<<16 | REG_YMM<<8 | 13) Y14 Reg = Reg(32<<16 | REG_YMM<<8 | 14) Y15 Reg = Reg(32<<16 | REG_YMM<<8 | 15) // Segment registers. ES Reg = Reg(2<<16 | REG_SEGMENT<<8 | 0) CS Reg = Reg(2<<16 | REG_SEGMENT<<8 | 1) SS Reg = Reg(2<<16 | REG_SEGMENT<<8 | 2) DS Reg = Reg(2<<16 | REG_SEGMENT<<8 | 3) FS Reg = Reg(2<<16 | REG_SEGMENT<<8 | 4) GS Reg = Reg(2<<16 | REG_SEGMENT<<8 | 5) // Control registers. CR0 Reg = Reg(4<<16 | REG_CONTROL<<8 | 0) CR1 Reg = Reg(4<<16 | REG_CONTROL<<8 | 1) CR2 Reg = Reg(4<<16 | REG_CONTROL<<8 | 2) CR3 Reg = Reg(4<<16 | REG_CONTROL<<8 | 3) CR4 Reg = Reg(4<<16 | REG_CONTROL<<8 | 4) CR5 Reg = Reg(4<<16 | REG_CONTROL<<8 | 5) CR6 Reg = Reg(4<<16 | REG_CONTROL<<8 | 6) CR7 Reg = Reg(4<<16 | REG_CONTROL<<8 | 7) CR8 Reg = Reg(4<<16 | REG_CONTROL<<8 | 8) CR9 Reg = Reg(4<<16 | REG_CONTROL<<8 | 9) CR10 Reg = Reg(4<<16 | REG_CONTROL<<8 | 10) CR11 Reg = Reg(4<<16 | REG_CONTROL<<8 | 11) CR12 Reg = Reg(4<<16 | REG_CONTROL<<8 | 12) CR13 Reg = Reg(4<<16 | REG_CONTROL<<8 | 13) CR14 Reg = Reg(4<<16 | REG_CONTROL<<8 | 14) CR15 Reg = Reg(4<<16 | REG_CONTROL<<8 | 15) // Debug registers. DR0 Reg = Reg(4<<16 | REG_DEBUG<<8 | 0) DR1 Reg = Reg(4<<16 | REG_DEBUG<<8 | 1) DR2 Reg = Reg(4<<16 | REG_DEBUG<<8 | 2) DR3 Reg = Reg(4<<16 | REG_DEBUG<<8 | 3) DR4 Reg = Reg(4<<16 | REG_DEBUG<<8 | 4) DR5 Reg = Reg(4<<16 | REG_DEBUG<<8 | 5) DR6 Reg = Reg(4<<16 | REG_DEBUG<<8 | 6) DR7 Reg = Reg(4<<16 | REG_DEBUG<<8 | 7) DR8 Reg = Reg(4<<16 | REG_DEBUG<<8 | 8) DR9 Reg = Reg(4<<16 | REG_DEBUG<<8 | 9) DR10 Reg = Reg(4<<16 | REG_DEBUG<<8 | 10) DR11 Reg = Reg(4<<16 | REG_DEBUG<<8 | 11) DR12 Reg = Reg(4<<16 | REG_DEBUG<<8 | 12) DR13 Reg = Reg(4<<16 | REG_DEBUG<<8 | 13) DR14 Reg = Reg(4<<16 | REG_DEBUG<<8 | 14) DR15 Reg = Reg(4<<16 | REG_DEBUG<<8 | 15) )
Registers
func (Reg) Family ¶
Get the family for the register.
If the register is valid, the return value will be REG_LEGACY, REG_RIP, REG_HIGHBYTE, REG_FP, REG_MMX, REG_XMM, REG_YMM, REG_SEGMENT, REG_CONTROL, or REG_DEBUG.
func (Reg) IsExtended ¶
Check if the register is numbered 8 or higher. The IP/EIP/RIP registers have no meaningful number, so they will return false.
type RegArg ¶
type RegArg interface { Arg // contains filtered or unexported methods }
RegArg represents any register.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
package disasm provides disassembly for Go functions at runtime.
|
package disasm provides disassembly for Go functions at runtime. |
internal
|
|
package stacks provides tracking for allocations, deallocations, and uses of stack-slots while assembling a function
|
package stacks provides tracking for allocations, deallocations, and uses of stack-slots while assembling a function |