x64

package module
v0.0.0-...-00e9ea0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2019 License: MPL-2.0 Imports: 9 Imported by: 0

README

x64

x86-64 instruction encoder in Go (work in progress)

This package contains a more-or-less direct port of the instruction-encoding logic from CensoredUsername/dynasm-rs. Only a relatively small subset of the features in dynasm-rs are supported. Not many features are working or tested yet, but the intended use-case is assembling executable code at runtime.

See the godocs or otherwise look at the tests for usage examples.

"Basic" Usage

package example

import (
	"fmt"
	"os"

	// importing everything from the package into the current scope makes for less noise
	. "github.com/wdamron/x64"
	"golang.org/x/sys/unix"
)

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
}

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

View Source
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

View Source
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

func SetFunctionCode(dstAddr interface{}, executable []byte) error

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

func NewAssembler(buf []byte) *Assembler

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

func (a *Assembler) AlignPC(pow2 uint8)

Align the program counter to a power-of-2 offset. Intermediate space will be filled with NOPs.

func (*Assembler) Code

func (a *Assembler) Code() []byte

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

func (a *Assembler) Err() error

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

func (a *Assembler) Finalize() error

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

func (a *Assembler) G(r Reg) error

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

func (a *Assembler) GetLabelPC(label LabelArg) uint32

Get the PC currently assigned to the label.

func (*Assembler) Inst

func (a *Assembler) Inst(inst Inst, args ...Arg) error

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

func (a *Assembler) Lock(inst Inst, args ...Arg) error

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

func (a *Assembler) MI(inst Inst, dst Mem, imm ImmArg) error

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

func (a *Assembler) MR(inst Inst, dst Mem, src Reg) error

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

func (a *Assembler) MRI(inst Inst, dst Mem, src Reg, imm ImmArg) error

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

func (a *Assembler) NewLabel() Label

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) Nop

func (a *Assembler) Nop(length uint8)

Encode length bytes of NOP instructions to the encoding buffer.

func (*Assembler) PC

func (a *Assembler) PC() uint32

Get the current program counter (i.e. number of bytes written to the encoding buffer).

func (*Assembler) RI

func (a *Assembler) RI(inst Inst, dst Reg, imm ImmArg) error

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

func (a *Assembler) RM(inst Inst, dst Reg, src Mem) error

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

func (a *Assembler) RMI(inst Inst, dst Reg, src Mem, imm ImmArg) error

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

func (a *Assembler) RR(inst Inst, dst, src Reg) error

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

func (a *Assembler) RRI(inst Inst, dst, src Reg, imm ImmArg) error

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) Raw

func (a *Assembler) Raw(data []byte)

Write raw data to the encoding buffer.

func (*Assembler) Raw16

func (a *Assembler) Raw16(i int16)

Write a raw 16-bit integer to the encoding buffer.

func (*Assembler) Raw32

func (a *Assembler) Raw32(i int32)

Write a raw 32-bit integer to the encoding buffer.

func (*Assembler) Raw64

func (a *Assembler) Raw64(i int64)

Write a raw 64-bit integer to the encoding buffer.

func (*Assembler) RawByte

func (a *Assembler) RawByte(b byte)

Write a raw byte to the encoding buffer.

func (*Assembler) Rep

func (a *Assembler) Rep(inst Inst, args ...Arg) error

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

func (a *Assembler) Repe(inst Inst, args ...Arg) error

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

func (a *Assembler) Repne(inst Inst, args ...Arg) error

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

func (a *Assembler) Repnz(inst Inst, args ...Arg) error

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

func (a *Assembler) Repz(inst Inst, args ...Arg) error

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

func (a *Assembler) Reset(buf []byte)

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

func (a *Assembler) SG(r, g Reg) error

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) SetLabel

func (a *Assembler) SetLabel(label LabelArg)

Update the PC assigned to the label using the current PC.

func (*Assembler) SetLabelPC

func (a *Assembler) SetLabelPC(label LabelArg, pc uint32)

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).

func (*Assembler) SetPC

func (a *Assembler) SetPC(pc uint32)

Set the current program counter (i.e. number of bytes written to the encoding buffer).

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
)

func Invcc

func Invcc(cc ConditionCode) ConditionCode

Invert a condition code.

type DispArg

type DispArg interface {
	Arg

	Int32() int32
	// contains filtered or unexported methods
}

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 Imm16

type Imm16 int16

Imm16 is a 16-bit immediate argument.

Imm16 implements ImmArg.

func (Imm16) Int64

func (i Imm16) Int64() int64

type Imm32

type Imm32 int32

Imm32 is a 32-bit immediate argument.

Imm32 implements ImmArg.

func (Imm32) Int64

func (i Imm32) Int64() int64

type Imm64

type Imm64 int64

Imm64 is a 64-bit immediate argument.

Imm64 implements ImmArg.

func (Imm64) Int64

func (i Imm64) Int64() int64

type Imm8

type Imm8 int8

Imm8 is an 8-bit immediate argument.

Imm8 implements ImmArg.

func (Imm8) Int64

func (i Imm8) Int64() int64

type ImmArg

type ImmArg interface {
	Arg

	Int64() int64
	// contains filtered or unexported methods
}

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.

func (Inst) Id

func (inst Inst) Id() uint16

Get the unique numeric identifier for the instruction mnemonic. This is an arbitrary value.

func (Inst) Name

func (inst Inst) Name() string

Get the name of the instruction mnemonic.

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

func (m *InstMatcher) MRI(inst Inst, dst Mem, src Reg, imm ImmArg) error

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) Match

func (m *InstMatcher) Match(inst Inst, args ...Arg) error

func (*InstMatcher) Opcode

func (m *InstMatcher) Opcode() []byte

Get the instruction's opcode

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

func (m *InstMatcher) RMI(inst Inst, dst Reg, src Mem, imm ImmArg) error

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

func (l Label) Disp16(d int16) LabelDisp

Reference the label as a 16-bit relative displacement from the current instruction pointer, with additional displacement provided by d.

func (Label) Disp32

func (l Label) Disp32(d int32) LabelDisp

Reference the label as a 32-bit relative displacement from the current instruction pointer, with additional displacement provided by d.

func (Label) Disp8

func (l Label) Disp8(d int8) LabelDisp

Reference the label as an 8-bit relative displacement from the current instruction pointer, with additional displacement provided by d.

func (Label) Id

func (l Label) Id() uint16

Get the unique identifier for the label.

func (Label) Int32

func (l Label) Int32() int32

Get the additional displacement for the label reference, which is always 0. Use LabelDisp for additional displacement.

func (Label) Rel16

func (l Label) Rel16() Label16

Reference the label as a 16-bit relative displacement from the current instruction pointer.

func (Label) Rel32

func (l Label) Rel32() Label32

Reference the label as a 32-bit relative displacement from the current instruction pointer.

func (Label) Rel8

func (l Label) Rel8() Label8

Reference the label as an 8-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.

func (Label16) Int32

func (l Label16) Int32() int32

Get the additional displacement for the label reference, which is always 0. Use LabelDisp for additional displacement.

type Label32

type Label32 uint16

Label32 is a 32-bit displacement to a label.

Label32 implements LabelArg and DispArg.

func (Label32) Int32

func (l Label32) Int32() int32

Get the additional displacement for the label reference, which is always 0. Use LabelDisp for additional displacement.

type Label8

type Label8 uint16

Label8 is an 8-bit displacement to a label.

Label8 implements LabelArg and DispArg.

func (Label8) Int32

func (l Label8) Int32() int32

Get the additional displacement for the label reference, which is always 0. Use LabelDisp for additional displacement.

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.

func (LabelDisp) Int32

func (l LabelDisp) Int32() int32

Get the additional displacement for the label reference.

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

func (r Reg) Family() uint8

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

func (r Reg) IsExtended() bool

Check if the register is numbered 8 or higher. The IP/EIP/RIP registers have no meaningful number, so they will return false.

func (Reg) Num

func (r Reg) Num() uint8

Get the number which distinguishes the register within its family. The IP/EIP/RIP registers have no meaningful number, so they will return 0.

func (Reg) Width

func (r Reg) Width() uint8

Get the width of the register in bytes.

type RegArg

type RegArg interface {
	Arg
	// contains filtered or unexported methods
}

RegArg represents any register.

type Rel16

type Rel16 int16

Rel16 is a 16-bit displacement argument.

Rel16 implements DispArg.

func (Rel16) Int32

func (r Rel16) Int32() int32

type Rel32

type Rel32 int32

Rel32 is a 32-bit displacement argument.

Rel32 implements DispArg.

func (Rel32) Int32

func (r Rel32) Int32() int32

type Rel8

type Rel8 int8

Rel8 is an 8-bit displacement argument.

Rel8 implements DispArg.

func (Rel8) Int32

func (r Rel8) Int32() int32

type RelArg

type RelArg interface {
	DispArg
	// contains filtered or unexported methods
}

RelArg represents a relative displacement.

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL