mirror of https://github.com/x64dbg/zydis
Added support for instructions with 5 operands
* optimized table structure to support instructions with 5 operands (vpermil2ps, vpermil2pd) * updated InstructionEditor
This commit is contained in:
parent
0cfed163a0
commit
72907c6845
assets
InstructionEditor
Forms
Editors
formEditorCPUIDFeatureFlags.pasformEditorInstructionOperands.dfmformEditorInstructionOperands.pasformEditorX86Registers.pas
formGenerator.dfmformGenerator.pasformMain.dfmformMain.pasinclude/Zydis
Defines.hInstructionInfo.h
Internal
InstructionDefinitions.incInstructionFilters.incInstructionTable.hMnemonicEnum.incMnemonicStrings.incMnemonics.incOperandDefinitions.inc
Mnemonic.hsrc
|
@ -3,9 +3,9 @@ unit formEditorCPUIDFeatureFlags;
|
|||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, untInstructionEditor, cxOI, Vcl.StdCtrls, System.ImageList,
|
||||
Vcl.ImgList, cxGraphics, VirtualTrees;
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, System.UITypes,
|
||||
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxOI, Vcl.StdCtrls, System.ImageList,
|
||||
Vcl.ImgList, cxGraphics, VirtualTrees, Zydis.InstructionEditor;
|
||||
|
||||
type
|
||||
TfrmEditorCPUIDFeatureFlags = class(TForm)
|
||||
|
@ -23,7 +23,8 @@ type
|
|||
var Allowed: Boolean);
|
||||
procedure VirtualTreeViewFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||
procedure VirtualTreeViewGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean;
|
||||
var ImageIndex: System.UITypes.TImageIndex);
|
||||
procedure VirtualTreeViewGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||
strict private
|
||||
|
@ -161,7 +162,7 @@ end;
|
|||
|
||||
procedure TfrmEditorCPUIDFeatureFlags.VirtualTreeViewGetImageIndex(Sender: TBaseVirtualTree;
|
||||
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean;
|
||||
var ImageIndex: Integer);
|
||||
var ImageIndex: System.UITypes.TImageIndex);
|
||||
begin
|
||||
ImageIndex := -1;
|
||||
if (Kind in [ikNormal, ikSelected]) then
|
||||
|
|
|
@ -1,199 +0,0 @@
|
|||
object frmEditorInstructionOperands: TfrmEditorInstructionOperands
|
||||
Left = 0
|
||||
Top = 0
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'frmEditorInstructionOperands'
|
||||
ClientHeight = 462
|
||||
ClientWidth = 640
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object GroupBox: TGroupBox
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 420
|
||||
Width = 634
|
||||
Height = 39
|
||||
Margins.Top = 0
|
||||
Align = alBottom
|
||||
TabOrder = 0
|
||||
DesignSize = (
|
||||
634
|
||||
39)
|
||||
object btnCancel: TButton
|
||||
Left = 514
|
||||
Top = 7
|
||||
Width = 112
|
||||
Height = 25
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Cancel'
|
||||
ImageIndex = 1
|
||||
ImageMargins.Left = 2
|
||||
ImageMargins.Top = 2
|
||||
Images = imgIcons16
|
||||
TabOrder = 1
|
||||
OnClick = btnCancelClick
|
||||
end
|
||||
object btnApply: TButton
|
||||
Left = 396
|
||||
Top = 7
|
||||
Width = 112
|
||||
Height = 25
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Apply'
|
||||
ImageIndex = 0
|
||||
ImageMargins.Left = 2
|
||||
ImageMargins.Top = 2
|
||||
Images = imgIcons16
|
||||
TabOrder = 0
|
||||
OnClick = btnApplyClick
|
||||
end
|
||||
end
|
||||
object PageControl1: TPageControl
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 3
|
||||
Width = 634
|
||||
Height = 414
|
||||
ActivePage = TabSheet1
|
||||
Align = alClient
|
||||
TabOrder = 1
|
||||
object TabSheet1: TTabSheet
|
||||
Caption = 'Instruction Operands'
|
||||
object GroupBox1: TGroupBox
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 3
|
||||
Width = 238
|
||||
Height = 380
|
||||
Align = alLeft
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
object imgIcons16: TcxImageList
|
||||
FormatVersion = 1
|
||||
DesignInfo = 1049152
|
||||
ImageInfo = <
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
20000000000000040000000000000000000000000000000000000000001B0000
|
||||
0033000000330000003300000033000000330000003300000033000000330000
|
||||
0033000000330000003300000033000000330000001B00000000004B29A00089
|
||||
49FF008747FF008747FF008747FF008747FF008747FF008747FF008747FF0087
|
||||
47FF008747FF008747FF008747FF008949FF004B29A000000000008949FF07E4
|
||||
A4FF07E5A5FF07E4A4FF07E4A4FF07E4A4FF07E4A4FF07E4A4FF07E4A4FF07E4
|
||||
A4FF07E4A4FF07E4A4FF07E5A5FF07E4A4FF008949FF00000000008747FF13E7
|
||||
AAFF00DB9BFF00DA9AFF00DA99FF00DA99FF00DA99FF00DA99FF00DA9AFF00DA
|
||||
9AFF00DA9AFF00DA9AFF00DB9BFF13E7AAFF008747FF00000000008746FF1EE7
|
||||
AEFF00D699FF00D698FF00D495FF00D391FF00D391FF00D495FF00D698FF00D6
|
||||
99FF00D699FF00D699FF00D699FF1EE7AEFF008746FF00000000008746FF2AE9
|
||||
B3FF00D299FF00D095FF00CC8DFFFFFFFFFFFFFFFFFF00CC8DFF00D096FF00D2
|
||||
99FF00D29AFF00D29AFF00D29AFF2AE9B3FF008746FF00000000008746FF35EA
|
||||
B7FF00CD96FF00C98DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C98DFF00CD
|
||||
96FF00CF99FF00CF9AFF00CF9AFF36EAB8FF008746FF00000000008745FF3EEB
|
||||
BBFF00C692FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C4
|
||||
8DFF00C995FF00CA99FF00CA99FF41ECBDFF008745FF00000000008745FF4BED
|
||||
BFFF00C393FFFFFFFFFFFFFFFFFF00C08BFF00BF8BFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFF00C18EFF00C596FF00C699FF4DEDC0FF008745FF00000000008744FF58EF
|
||||
C5FF00C197FF00BF93FF00C093FF00C196FF00C196FF00BC8EFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFF00BC8EFF00C096FF58EFC5FF008744FF00000000008744FF64F1
|
||||
CAFF00BE99FF00C099FF00C09AFF00C19BFF00C19AFF00BE97FF00B98EFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFF00BA92FF62F0C9FF008744FF00000000008744FF71F2
|
||||
CFFF00BB99FF00BD9AFF00BE9BFF00BE9BFF00BE9BFF00BE9AFF00BB96FF00B6
|
||||
8EFFFFFFFFFFFFFFFFFF00B792FF6EF2CDFF008744FF00000000008744FF7BF4
|
||||
D3FF00B699FF00B89AFF00B99BFF00B99BFF00B99BFF00B99BFF00B89AFF00B7
|
||||
98FF00B494FF00B493FF00B496FF7AF3D3FF008744FF00000000008744FF86F5
|
||||
D8FF00B198FF00B299FF00B399FF00B399FF00B399FF00B399FF00B399FF00B2
|
||||
99FF00B298FF00B297FF00B197FF86F5D8FF008744FF00000000008946FF8AF2
|
||||
D9FF92F6DEFF93F6DDFF94F6DDFF94F6DDFF94F6DDFF94F6DDFF94F6DDFF94F6
|
||||
DDFF94F6DDFF93F6DDFF92F6DEFF8AF2D9FF008946FF00000000004B29880089
|
||||
46FF008743FF008643FF008643FF008643FF008643FF008643FF008643FF0086
|
||||
43FF008643FF008643FF008743FF008946FF004B298800000000}
|
||||
end
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000000000
|
||||
0013000000330000003300000033000000330000003300000033000000330000
|
||||
0033000000330000003300000033000000330000003300000013000000001117
|
||||
487E2D3CC0FF2B3BBEFF2A3ABEFF2A3ABEFF2A3ABEFF2A3ABEFF2A3ABEFF2A3A
|
||||
BEFF2A3ABEFF2A3ABEFF2A3ABEFF2B3BBEFF2D3CC0FF1117487E000000002D3D
|
||||
C0FF6172FAFF6A7DFFFF697CFFFF6D80FFFF7485FFFF7788FFFF7788FFFF7788
|
||||
FFFF7485FFFF6D7FFFFF697CFFFF6A7DFFFF6172FAFF2D3DC0FF000000002B3B
|
||||
BEFF6578FFFF5F73FEFF6F80FFFF7989FFFF5868E6FF3E4ED0FF3F4FD1FF3E4E
|
||||
D0FF5767E5FF7887FEFF6E7FFFFF5F73FEFF6578FFFF2B3BBEFF000000002B3B
|
||||
BEFF5D72FFFF697BFEFF7785F8FF3949CAFF1E2A89B70B0F303F07091D26070A
|
||||
1F552636B9FF5A6FFDFF576CFAFF687AFCFF5D71FFFF2B3BBEFF000000002C3B
|
||||
BFFF586EFEFF8593FFFF3B4BCAFF0E143F530000000000000000000000332B3A
|
||||
BDFF5970FEFF546AFBFF7F8FFFFF8290FDFF586EFEFF2C3BBFFF000000002C3C
|
||||
BFFF536BFCFF707CE7FF1E2A89BB0000000000000000000000332C3BBEFF546B
|
||||
FBFF5067F8FF8796FFFF3B4BCDFF6D79E5FF536AFCFF2C3CBFFF000000002D3D
|
||||
BFFF4F68FBFF4E5BD1FF0B0F304500000000000000332C3BBEFF4E66F9FF4A63
|
||||
F6FF8C99FFFF2737BCFF07091F314D5AD0FF4F68FBFF2D3DBFFF000000002E3D
|
||||
C0FF4A64F9FF3446CDFF07091D2D000000332D3CBEFF4862F7FF445DF4FF8E9C
|
||||
FFFF2838BDFF0000000007091D313446CDFF4A64F9FF2E3DC0FF000000002E3D
|
||||
C0FF4660F7FF3445CCFF080A20552D3CBEFF445DF4FF3F59F1FF929FFFFF2838
|
||||
BDFF00000000000000000C0F305B3445CDFF4660F7FF2E3DC0FF000000002E3E
|
||||
C0FF405BF3FF384DDBFF2E3CBCFF3E59F2FF3954EFFF95A2FFFF2838BDFF0000
|
||||
00000000000000000011222D8AC5384EDCFF405BF3FF2E3EC0FF000000002F3E
|
||||
C0FF3955F0FF3951EAFF3954EEFF3651EDFF9AA5FFFF2838BDFF000000080000
|
||||
000D0000002510153F753041C8FF3A53EBFF3A55F0FF2F3EC0FF000000002E3D
|
||||
BFFF3A54EFFF324DE9FF334DE9FF324DEBFF2A39BCFF070A1F5507091D510B0F
|
||||
3065212D8AC52F41C8FF314CE4FF324DEBFF3A54EFFF2E3DBFFF000000002B3B
|
||||
BFFF6A7DFDFF334EE8FF2643E4FF2642E3FF253CD4FF2739C7FF273AC8FF273A
|
||||
C8FF263DD5FF2743E5FF2643E6FF334EE9FF6A7DFDFF2B3BBFFF000000002B3B
|
||||
C0FF929DFCFFAAB3FFFFAAB3FFFFAAB3FFFFAAB4FFFFAAB4FFFFAAB4FFFFAAB4
|
||||
FFFFAAB4FFFFAAB3FFFFAAB3FFFFAAB3FFFF929DFCFF2B3BC0FF000000001117
|
||||
485E2A3AC0FF2838BFFF2737BEFF2737BEFF2737BEFF2737BFFF2737BFFF2737
|
||||
BFFF2737BEFF2737BEFF2737BEFF2838BFFF2A3AC0FF1117485E}
|
||||
end
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000300000
|
||||
0033000000330000003300000033000000330000003300000033000000330000
|
||||
00330000002F0000000000000000000000000000000000000000A36B31F2AB6E
|
||||
31FFAA6B2DFFAA6C2FFFAA6D31FFAA6D31FFAA6D31FFAA6C2FFFAA6B2DFFAB6E
|
||||
31FFA26A31F10000000000000000000000000000000000000000AB6E31FFEEAF
|
||||
60FFFFF7DEFFE9A95BFFEAAB5EFFEAAB5FFFEAAB5EFFE9A95AFFFFF7DEFFEEAF
|
||||
60FFAB6E30FF0000003300000033000000330000003300000023AA6B2DFFFFF6
|
||||
DDFFFCEDD2FFFCEFD5FFFDF1D9FFFDF0D7FFFCEED4FFFCEDD2FFFCEDD1FFFFF6
|
||||
DDFFA8692BFFAB6E31FFAA6C2FFFAA6B2DFFAB6E2FFF784F24C0AA6C2EFFE8B0
|
||||
68FFFDEED4FFDD9C4FFFDEA054FFDD9E52FFFDEFD6FFDA9747FFFCEDD1FFE7AE
|
||||
67FFA56628FFEEAF62FFEAA95BFFFFF6DCFFF4C180FFAB6D2FFFAA6C2FFFE7B4
|
||||
72FFFEF1D8FFD99C52FFDBA159FFDBA058FFD99C51FFFDEFD5FFFCEDD2FFE6B2
|
||||
6FFFA36324FFFFF5DCFFFCEDD2FFFCECCFFFFFF5DAFFA96B2CFFAA6C2FFFE8B7
|
||||
78FFFEF1D8FFD59A53FFD89F5AFFD89F5BFFD69C56FFDDAD70FFFEEFD5FFE7B5
|
||||
76FFA46324FFFFF4DBFFE2AC68FFFBEBCEFFF2CC98FFAA6B2CFFAA6C2FFFE7B9
|
||||
7FFFFFF1D7FFD0954FFFD39B57FFD39B58FFD29A55FFD0954EFFFFF3DAFFE6B9
|
||||
7FFFA56627FFDDA054FFFDF0D6FFFCECD1FFEEC189FFAA6B2DFFAA6C2EFFE7BB
|
||||
84FFFEF0D5FFCA8F4AFFCD9552FFD7A668FFE8BF8BFFE8BE89FFE6BC86FFE9BF
|
||||
8AFFA6672AFFDAA05AFFD4974EFFFDEFD4FFEEC590FFAA6B2DFFAA6C2EFFE5BD
|
||||
8AFFFDEED2FFFFF1D6FFC58D48FFE6C08EFFBF894FFFA66728FFA56426FFE9C5
|
||||
94FFA6672AFFD59D58FFD1964FFFFFF2D9FFEECA96FFAA6C2EFFAA6B2CFFE5C0
|
||||
8EFFFDECD0FFBB813AFFFFF0D5FFECCDA3FFA56526FFDBA25AFFE8C89CFFCFA2
|
||||
6EFFBF894DFFE9C18DFFE8BF8AFFE6BC86FFE9C08AFFAB6D2FFFAA6B2BFFFFF5
|
||||
DAFFFDECCEFFFDECCFFFFEEED2FFEBCEA6FFA56322FFE8CAA0FFCEA16EFFB173
|
||||
31FFE8C390FFC08950FFA66728FFA56426FFEBC695FFAC6E30FFAB6D2EFFE6CB
|
||||
A3FFFFF5D9FFE2C59AFFE3C69DFFE5C9A1FFE7CCA4FFCDA371FFAE6E2AFFFFF4
|
||||
DAFFE6C392FFA66627FFDCA35AFFE9CA9EFFD3A773FF754C22AC784E24B0AB6D
|
||||
2EFFAA6B2BFFAA6B2BFFAA6B2CFFAA6A2AFFA76524FFC79865FFFFF3D7FFFFF0
|
||||
D4FFE4C396FFA56323FFE9CCA2FFD2A775FF70481FA700000000000000000000
|
||||
0000000000000000000000000000AD6F31FFE9D0A9FFFFF9DFFFE3C69CFFE3C7
|
||||
9EFFE6CAA2FFE8CFA7FFD1AA7AFF70471FA70000000000000000000000000000
|
||||
0000000000000000000000000000774E24AFAB6C2EFFC18E58FFA9692AFFAA6B
|
||||
2CFFAB6C2EFFAC6D2FFF754B21AC000000000000000000000000}
|
||||
end>
|
||||
end
|
||||
end
|
|
@ -1,80 +0,0 @@
|
|||
unit formEditorInstructionOperands;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, System.ImageList, Vcl.ImgList, cxGraphics,
|
||||
Vcl.StdCtrls, untInstructionEditor;
|
||||
|
||||
type
|
||||
TfrmEditorInstructionOperands = class(TForm)
|
||||
GroupBox: TGroupBox;
|
||||
btnCancel: TButton;
|
||||
btnApply: TButton;
|
||||
imgIcons16: TcxImageList;
|
||||
PageControl1: TPageControl;
|
||||
TabSheet1: TTabSheet;
|
||||
GroupBox1: TGroupBox;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnCancelClick(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure btnApplyClick(Sender: TObject);
|
||||
strict private
|
||||
FApplyChanges: Boolean;
|
||||
FEditor: TInstructionEditor;
|
||||
FDefinition: TInstructionDefinition;
|
||||
strict private
|
||||
function GetOperands: TInstructionOperands; inline;
|
||||
procedure SetOperands(const Value: TInstructionOperands); inline;
|
||||
public
|
||||
property ApplyChanges: Boolean read FApplyChanges;
|
||||
property Operands: TInstructionOperands read GetOperands write SetOperands;
|
||||
end;
|
||||
|
||||
var
|
||||
frmEditorInstructionOperands: TfrmEditorInstructionOperands;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
{ TfrmEditorInstructionOperands }
|
||||
|
||||
procedure TfrmEditorInstructionOperands.btnApplyClick(Sender: TObject);
|
||||
begin
|
||||
FApplyChanges := true;
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TfrmEditorInstructionOperands.btnCancelClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TfrmEditorInstructionOperands.FormCreate(Sender: TObject);
|
||||
begin
|
||||
FEditor := TInstructionEditor.Create;
|
||||
FEditor.Reset;
|
||||
FDefinition := FEditor.CreateDefinition('dummy');
|
||||
end;
|
||||
|
||||
procedure TfrmEditorInstructionOperands.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
if (Assigned(FEditor)) then
|
||||
begin
|
||||
FEditor.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrmEditorInstructionOperands.GetOperands: TInstructionOperands;
|
||||
begin
|
||||
Result := FDefinition.Operands;
|
||||
end;
|
||||
|
||||
procedure TfrmEditorInstructionOperands.SetOperands(const Value: TInstructionOperands);
|
||||
begin
|
||||
FDefinition.Operands.Assign(Value);
|
||||
end;
|
||||
|
||||
end.
|
|
@ -3,9 +3,9 @@ unit formEditorX86Registers;
|
|||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, untInstructionEditor, System.ImageList, Vcl.ImgList,
|
||||
cxGraphics, Vcl.StdCtrls, VirtualTrees;
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
|
||||
System.UITypes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Zydis.InstructionEditor,
|
||||
System.ImageList, Vcl.ImgList, cxGraphics, Vcl.StdCtrls, VirtualTrees;
|
||||
|
||||
type
|
||||
TfrmEditorX86Registers = class(TForm)
|
||||
|
@ -20,7 +20,8 @@ type
|
|||
procedure FormCreate(Sender: TObject);
|
||||
procedure VirtualTreeViewFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||
procedure VirtualTreeViewGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean;
|
||||
var ImageIndex: System.UITypes.TImageIndex);
|
||||
procedure VirtualTreeViewGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||
procedure VirtualTreeViewCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
|
@ -199,7 +200,7 @@ end;
|
|||
|
||||
procedure TfrmEditorX86Registers.VirtualTreeViewGetImageIndex(Sender: TBaseVirtualTree;
|
||||
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean;
|
||||
var ImageIndex: Integer);
|
||||
var ImageIndex: System.UITypes.TImageIndex);
|
||||
var
|
||||
NodeData: PNodeData;
|
||||
begin
|
||||
|
@ -220,8 +221,8 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmEditorX86Registers.VirtualTreeViewGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||
procedure TfrmEditorX86Registers.VirtualTreeViewGetText(Sender: TBaseVirtualTree;
|
||||
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||
var
|
||||
NodeData: PNodeData;
|
||||
begin
|
||||
|
|
|
@ -2,9 +2,9 @@ object frmGenerator: TfrmGenerator
|
|||
Left = 0
|
||||
Top = 0
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Generator'
|
||||
ClientHeight = 371
|
||||
ClientWidth = 544
|
||||
Caption = 'Code Generator'
|
||||
ClientHeight = 204
|
||||
ClientWidth = 449
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
|
@ -13,23 +13,22 @@ object frmGenerator: TfrmGenerator
|
|||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnCreate = FormCreate
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object GroupBox: TGroupBox
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 329
|
||||
Width = 538
|
||||
Top = 162
|
||||
Width = 443
|
||||
Height = 39
|
||||
Margins.Top = 0
|
||||
Align = alBottom
|
||||
TabOrder = 0
|
||||
DesignSize = (
|
||||
538
|
||||
443
|
||||
39)
|
||||
object btnClose: TButton
|
||||
Left = 418
|
||||
Left = 323
|
||||
Top = 7
|
||||
Width = 112
|
||||
Height = 25
|
||||
|
@ -43,7 +42,7 @@ object frmGenerator: TfrmGenerator
|
|||
OnClick = btnCloseClick
|
||||
end
|
||||
object btnGenerate: TButton
|
||||
Left = 300
|
||||
Left = 205
|
||||
Top = 7
|
||||
Width = 112
|
||||
Height = 25
|
||||
|
@ -57,46 +56,74 @@ object frmGenerator: TfrmGenerator
|
|||
OnClick = btnGenerateClick
|
||||
end
|
||||
end
|
||||
object TreeView: TVirtualStringTree
|
||||
object PageControl1: TPageControl
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 3
|
||||
Width = 538
|
||||
Height = 323
|
||||
Width = 443
|
||||
Height = 156
|
||||
ActivePage = TabSheet1
|
||||
Align = alClient
|
||||
Header.AutoSizeIndex = 0
|
||||
Header.Font.Charset = DEFAULT_CHARSET
|
||||
Header.Font.Color = clWindowText
|
||||
Header.Font.Height = -11
|
||||
Header.Font.Name = 'Tahoma'
|
||||
Header.Font.Style = []
|
||||
Header.Options = [hoAutoResize, hoVisible]
|
||||
Images = imgTreeView
|
||||
TabOrder = 1
|
||||
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
||||
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toShowHorzGridLines, toShowTreeLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toFullVertGridLines, toAlwaysHideSelection, toUseBlendedSelection]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect]
|
||||
OnBeforeCellPaint = TreeViewBeforeCellPaint
|
||||
OnCollapsing = TreeViewCollapsing
|
||||
OnFreeNode = TreeViewFreeNode
|
||||
OnGetText = TreeViewGetText
|
||||
OnGetImageIndex = TreeViewGetImageIndex
|
||||
Columns = <
|
||||
item
|
||||
Position = 0
|
||||
Width = 384
|
||||
WideText = 'Name'
|
||||
object TabSheet1: TTabSheet
|
||||
Caption = 'Code Generator'
|
||||
object GroupBox1: TGroupBox
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 3
|
||||
Width = 429
|
||||
Height = 122
|
||||
Align = alClient
|
||||
TabOrder = 0
|
||||
DesignSize = (
|
||||
429
|
||||
122)
|
||||
object Label1: TLabel
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 73
|
||||
Height = 13
|
||||
Caption = 'Total Progress:'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 16
|
||||
Top = 64
|
||||
Width = 92
|
||||
Height = 13
|
||||
Caption = 'Current Operation:'
|
||||
end
|
||||
object lblOperationName: TLabel
|
||||
Left = 114
|
||||
Top = 64
|
||||
Width = 3
|
||||
Height = 13
|
||||
end
|
||||
object pbTotalProgress: TProgressBar
|
||||
Left = 16
|
||||
Top = 35
|
||||
Width = 398
|
||||
Height = 17
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = False
|
||||
TabOrder = 0
|
||||
end
|
||||
object pbCurrentOperation: TProgressBar
|
||||
Left = 16
|
||||
Top = 83
|
||||
Width = 398
|
||||
Height = 17
|
||||
Anchors = [akLeft, akTop, akRight]
|
||||
ParentShowHint = False
|
||||
ShowHint = False
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
item
|
||||
Alignment = taRightJustify
|
||||
Position = 1
|
||||
Width = 150
|
||||
WideText = 'Value'
|
||||
end>
|
||||
end
|
||||
end
|
||||
object imgIcons16: TcxImageList
|
||||
FormatVersion = 1
|
||||
DesignInfo = 2097208
|
||||
DesignInfo = 524392
|
||||
ImageInfo = <
|
||||
item
|
||||
Image.Data = {
|
||||
|
@ -173,157 +200,4 @@ object frmGenerator: TfrmGenerator
|
|||
BFFF2737BEFF2737BEFF2737BEFF2838BFFF2A3AC0FF1117485E}
|
||||
end>
|
||||
end
|
||||
object imgTreeView: TcxImageList
|
||||
FormatVersion = 1
|
||||
DesignInfo = 2097288
|
||||
ImageInfo = <
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000300000
|
||||
0033000000330000003300000033000000330000003300000033000000330000
|
||||
00330000003300000033000000330000002F00000000000000004190C6F24398
|
||||
D2FF4094D0FF3E92CFFF3E92CEFF3F92CEFF3F92CEFF3F92CEFF3F92CEFF3F92
|
||||
CEFF3F92CEFF3F92CEFF3F93CFFF3D8BC2F00000000E000000004499D2FF3F94
|
||||
D0FFABFBFFFF9BF3FFFF92F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1FFFF93F1
|
||||
FFFF93F1FFFF93F1FFFFA6F8FFFF65B8E3FF122A3A5F000000004398D2FF4FA6
|
||||
D9FF8EDAF5FFA2EEFFFF82E5FEFF84E5FEFF84E5FEFF85E6FEFF85E6FEFF85E6
|
||||
FEFF85E6FEFF84E6FEFF96EBFFFF8CD8F5FF296088B8000000004296D1FF6BBE
|
||||
E8FF6DBDE6FFBBF2FFFF75DEFDFF77DEFCFF78DEFCFF7BDFFCFF7DDFFCFF7DDF
|
||||
FCFF7DDFFCFF7CDFFCFF80E0FDFFADF0FFFF4D9DD3FF0000000E4095D0FF8AD7
|
||||
F5FF44A1D8FFDDFDFFFFDAFAFFFFDBFAFFFFDEFAFFFF74DCFCFF76DBFAFF75DA
|
||||
FAFF74DAFAFF74DAFAFF72D9FAFFA1E8FFFF7CBFE6FF12293A5E3E94D0FFABF0
|
||||
FFFF449DD6FF368CCBFF368CCBFF368CCBFF378BCBFF5CBEEAFF6FD9FBFF6AD6
|
||||
FAFF68D5F9FF67D4F9FF66D4F9FF82DEFCFFAAE0F6FF296088B93D92CFFFB9F4
|
||||
FFFF73DBFBFF6BCCF2FF6CCDF3FF6CCEF3FF6DCEF3FF479CD4FF56BAE9FFDAF8
|
||||
FFFFD7F6FFFFD6F6FFFFD5F6FFFFD5F7FFFFDBFCFFFF3E94D0FF3C92CFFFC0F3
|
||||
FFFF71DAFBFF74DBFBFF75DBFCFF75DBFCFF76DCFCFF73DAFAFF449CD4FF378C
|
||||
CBFF368CCBFF358CCCFF348DCCFF3890CEFF3D94D0FF3E8CC2EB3B92CFFFCAF6
|
||||
FFFF69D5F9FF6CD5F9FF6BD5F9FF69D5F9FF69D5FAFF6AD7FBFF68D4FAFF5EC7
|
||||
F1FF5EC7F2FF5DC8F2FFB4E3F8FF3D94D0FF1A3B5269000000003B92CFFFD5F7
|
||||
FFFF60D1F9FF61D0F8FFB4EBFDFFD9F6FFFFDAF8FFFFDAF8FFFFDBF9FFFFDCFA
|
||||
FFFFDCFAFFFFDCFBFFFFE0FFFFFF3E95D0FF0E1F2A33000000003D94D0FFDCFC
|
||||
FFFFD8F7FFFFD8F7FFFFDBFAFFFF358ECDFF3991CEFF3A92CFFF3A92CFFF3A92
|
||||
CFFF3A92CFFF3B92CFFF3D94D0FF3880B1D700000000000000002E6991B03D94
|
||||
D0FF3A92CFFF3A92CFFF3D94D0FF367CACD20000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000}
|
||||
end
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000001E00000033000000330000
|
||||
00330000001E0000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000001E3B3B3BAC636363FF626263FF6363
|
||||
63FF3B3B3BAC0000001E00000000000000000000000000000000000000000000
|
||||
00000000000000000000000000003B3B3BAC6F6E6EFF95918FFF989492FF9591
|
||||
8FFF6F6E6EFF3B3B3BAC00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000636464FF858381FF878481FF868381FF8784
|
||||
81FF858381FF636464FF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000626363FF8E8C8BFF767371FF767371FF7673
|
||||
71FF8E8C8BFF626363FF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000626363FFA7A5A5FF7D7B7AFF787675FF7D7B
|
||||
7AFFA7A5A5FF626363FF00000000000000000000000000000000000000000000
|
||||
00000000000000000000000000003B3B3B976F6E6EFFA6A5A4FFA9A8A9FFA6A5
|
||||
A4FF6D6E6EFF3B3B3B9700000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003B3B3B97626262FF616161FF6262
|
||||
62FF3B3B3B970000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000}
|
||||
end
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000024000000330000
|
||||
002F000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000005F31C100C684FF007D
|
||||
41ED000000290000000000000000000000000000000000000000000000000000
|
||||
00000000000000000024000000330000003300000033008847FF00E4A6FF00BE
|
||||
80FF006F3BD90000002100000000000000000000000000000000000000000000
|
||||
000000000000005F31C1008A48FF008847FF008746FF008847FF00D9A1FF00D8
|
||||
A0FF00BC80FF005A2FB900000022000000000000000000000000000000000000
|
||||
000000000000008947FF43E8C2FF00D7A0FF00D7A0FF00D59FFF00D09CFF00D0
|
||||
9CFF00D39FFF00B981FF005D32BD000000000000000000000000000000000000
|
||||
000000000000008845FF6FE8D0FF00C899FF00C899FF00C899FF00C797FF00C8
|
||||
98FF00CA9AFF63E6CDFF008A47FF000000000000000000000000000000000000
|
||||
000000000000008946FF99F0E4FF4FE9D5FF51E8D4FF4DE6D1FF94E8D8FF00C3
|
||||
97FF60E0C7FF00B281FF005E31AC000000000000000000000000000000000000
|
||||
000000000000005F32B2008946FF008744FF008642FF008847FF82E4D6FF5ADA
|
||||
C4FF00AD7FFF005A2EA700000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000008847FF7AE4D8FF00AA
|
||||
7FFF006F39CF0000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000005F32B200AA85FF007E
|
||||
40E9000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000}
|
||||
end
|
||||
item
|
||||
Image.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000001E00000033000000330000
|
||||
00330000001E0000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000001E6E4F11ACB78319FFB68218FFB783
|
||||
19FF6E4F11AC0000001E00000000000000000000000000000000000000000000
|
||||
00000000000000000000000000006E4F11ACC5922FFFEDC074FFF1C47AFFEDC0
|
||||
74FFC5922FFF6E4F11AC00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000B7841AFFEAB45CFFE9B45CFFE8B35BFFE9B4
|
||||
5CFFEAB45CFFB7841AFF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000B78219FFEBB964FFE3A641FFE3A641FFE3A6
|
||||
41FFEBB964FFB78219FF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000B78319FFEEC684FFE5AA49FFE2A641FFE5AA
|
||||
49FFEEC684FFB78319FF00000000000000000000000000000000000000000000
|
||||
00000000000000000000000000006E4F1197C6922EFFECC482FFEFC886FFECC4
|
||||
82FFC6912CFF6E4F119700000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000006E4F1197B78319FFB68217FFB783
|
||||
19FF6E4F11970000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000}
|
||||
end>
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,8 +4,8 @@ interface
|
|||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VirtualTrees, System.ImageList, Vcl.ImgList, cxGraphics,
|
||||
Vcl.StdCtrls, untInstructionEditor;
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.ImageList, Vcl.ImgList, cxGraphics, Vcl.StdCtrls,
|
||||
Vcl.ComCtrls, Zydis.InstructionEditor;
|
||||
|
||||
type
|
||||
TfrmGenerator = class(TForm)
|
||||
|
@ -13,30 +13,21 @@ type
|
|||
btnClose: TButton;
|
||||
btnGenerate: TButton;
|
||||
imgIcons16: TcxImageList;
|
||||
TreeView: TVirtualStringTree;
|
||||
imgTreeView: TcxImageList;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure TreeViewCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
var Allowed: Boolean);
|
||||
procedure TreeViewFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||
procedure TreeViewGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||
procedure TreeViewGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
|
||||
TextType: TVSTTextType; var CellText: string);
|
||||
PageControl1: TPageControl;
|
||||
TabSheet1: TTabSheet;
|
||||
GroupBox1: TGroupBox;
|
||||
pbTotalProgress: TProgressBar;
|
||||
Label1: TLabel;
|
||||
pbCurrentOperation: TProgressBar;
|
||||
Label2: TLabel;
|
||||
lblOperationName: TLabel;
|
||||
procedure btnCloseClick(Sender: TObject);
|
||||
procedure btnGenerateClick(Sender: TObject);
|
||||
procedure TreeViewBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
|
||||
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
|
||||
var ContentRect: TRect);
|
||||
strict private
|
||||
FEditor: TInstructionEditor;
|
||||
FProgressNodeTotal: PVirtualNode;
|
||||
FProgressNode: array[TGeneratorWorkOperation] of PVirtualNode;
|
||||
FInfoNode: array[0..6] of PVirtualNode;
|
||||
FCurrentOperation: TGeneratorWorkOperation;
|
||||
strict private
|
||||
procedure GeneratorWorkStart(Sender: TObject; Operation: TGeneratorWorkOperation; MinWorkCount,
|
||||
MaxWorkCount: Integer);
|
||||
procedure GeneratorWorkStart(Sender: TObject; const OperationName: String;
|
||||
OperationCount, OperationNumber: Integer; MinWorkCount, MaxWorkCount: Integer);
|
||||
procedure GeneratorWork(Sender: TObject; WorkCount: Integer);
|
||||
procedure GeneratorWorkEnd(Sender: TObject);
|
||||
public
|
||||
|
@ -49,67 +40,10 @@ var
|
|||
implementation
|
||||
|
||||
uses
|
||||
untHelperClasses;
|
||||
Zydis.CodeGenerator, untHelperClasses;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
type
|
||||
TGeneratorNodeType = (ntCategory, ntSpacer, ntOperation, ntValue);
|
||||
|
||||
PGeneratorNodeData = ^TGeneratorNodeData;
|
||||
TGeneratorNodeData = record
|
||||
public
|
||||
NodeType: TGeneratorNodeType;
|
||||
Text: String;
|
||||
ProgressActive: Boolean;
|
||||
ProgressMax: Integer;
|
||||
ProgressUpdateStep: Integer;
|
||||
Progress: Double;
|
||||
Value: String;
|
||||
public
|
||||
procedure ProgressInit(MaxWorkCount: Integer; MinWorkCount: Integer); inline;
|
||||
procedure ProgressUpdate(NewProgress: Double); inline;
|
||||
procedure WorkCountUpdate(WorkCount: Integer); inline;
|
||||
function IsProgressUpdateStep(WorkCount: Integer): Boolean; inline;
|
||||
end;
|
||||
|
||||
{ TGeneratorNodeData }
|
||||
|
||||
function TGeneratorNodeData.IsProgressUpdateStep(WorkCount: Integer): Boolean;
|
||||
begin
|
||||
Assert(NodeType = ntOperation);
|
||||
Result := ((WorkCount mod ProgressUpdateStep) = 0);
|
||||
end;
|
||||
|
||||
procedure TGeneratorNodeData.ProgressInit(MaxWorkCount, MinWorkCount: Integer);
|
||||
begin
|
||||
Assert(NodeType = ntOperation);
|
||||
ProgressMax := (MaxWorkCount - MinWorkCount);
|
||||
ProgressUpdateStep := Round(ProgressMax / 100) + 1;
|
||||
end;
|
||||
|
||||
procedure TGeneratorNodeData.ProgressUpdate(NewProgress: Double);
|
||||
var
|
||||
Format: TFormatSettings;
|
||||
begin
|
||||
Assert(NodeType = ntOperation);
|
||||
Progress := NewProgress;
|
||||
Format.DecimalSeparator := '.';
|
||||
Value := FormatFloat('0.00', Progress * 100, Format) + '%';
|
||||
end;
|
||||
|
||||
procedure TGeneratorNodeData.WorkCountUpdate(WorkCount: Integer);
|
||||
begin
|
||||
Assert(NodeType = ntOperation);
|
||||
if (ProgressMax = 0) then
|
||||
begin
|
||||
ProgressUpdate(1.0);
|
||||
end else
|
||||
begin
|
||||
ProgressUpdate(WorkCount / ProgressMax);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TfrmGenerator }
|
||||
|
||||
procedure TfrmGenerator.btnCloseClick(Sender: TObject);
|
||||
|
@ -118,278 +52,65 @@ begin
|
|||
end;
|
||||
|
||||
procedure TfrmGenerator.btnGenerateClick(Sender: TObject);
|
||||
|
||||
procedure SetInfoNodeValue(Node: PVirtualNode; const Value: String);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
Generator: TCodeGenerator;
|
||||
Statistics: TCodeGeneratorStatistics;
|
||||
begin
|
||||
NodeData := TreeView.GetNodeData(Node);
|
||||
NodeData^.Value := Value;
|
||||
end;
|
||||
|
||||
var
|
||||
Generator: TTableGenerator;
|
||||
Node: PVirtualNode;
|
||||
NodeData: PGeneratorNodeData;
|
||||
I: Integer;
|
||||
begin
|
||||
TreeView.BeginUpdate;
|
||||
try
|
||||
for Node in FProgressNode do
|
||||
begin
|
||||
NodeData := TreeView.GetNodeData(Node);
|
||||
NodeData^.ProgressActive := false;
|
||||
NodeData^.ProgressUpdate(0);
|
||||
end;
|
||||
NodeData := TreeView.GetNodeData(FProgressNodeTotal);
|
||||
NodeData^.ProgressActive := false;
|
||||
NodeData^.ProgressUpdate(0);
|
||||
finally
|
||||
TreeView.EndUpdate;
|
||||
end;
|
||||
Generator := TTableGenerator.Create;
|
||||
pbTotalProgress.Min := 0;
|
||||
pbTotalProgress.Max := 0;
|
||||
pbTotalProgress.Position := 0;
|
||||
Generator := TCodeGenerator.Create;
|
||||
try
|
||||
Generator.OnWorkStart := GeneratorWorkStart;
|
||||
Generator.OnWork := GeneratorWork;
|
||||
Generator.OnWorkEnd := GeneratorWorkEnd;
|
||||
Generator.GenerateFiles(FEditor,
|
||||
'D:\Verteron Development\GitHub\zyan-disassembler-engine old\include\Zydis\Internal\');
|
||||
TreeView.BeginUpdate;
|
||||
try
|
||||
for I := Low(FInfoNode) to High(FInfoNode) do
|
||||
begin
|
||||
case I of
|
||||
0: SetInfoNodeValue(FInfoNode[I], IntToStr(Generator.Statistics.FilterCount));
|
||||
1: SetInfoNodeValue(FInfoNode[I], IntToStr(Generator.Statistics.DefinitionCount));
|
||||
2: SetInfoNodeValue(FInfoNode[I], IntToStr(Generator.Statistics.MnemonicCount));
|
||||
3: SetInfoNodeValue(FInfoNode[I], TSizeFormatter.Format(Generator.Statistics.FilterSize));
|
||||
4: SetInfoNodeValue(FInfoNode[I],
|
||||
TSizeFormatter.Format(Generator.Statistics.DefinitionSize));
|
||||
5: SetInfoNodeValue(FInfoNode[I],
|
||||
TSizeFormatter.Format(Generator.Statistics.MnemonicSize));
|
||||
6: SetInfoNodeValue(FInfoNode[I], TSizeFormatter.Format(Generator.Statistics.FilterSize
|
||||
+ Generator.Statistics.DefinitionSize + Generator.Statistics.MnemonicSize));
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
TreeView.EndUpdate;
|
||||
end;
|
||||
Application.ProcessMessages;
|
||||
Generator.GenerateCode(
|
||||
FEditor, 'D:\Verteron Development\GitHub\zyan-disassembler-engine\', Statistics);
|
||||
// TODO: Display statistics
|
||||
finally
|
||||
Generator.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.FormCreate(Sender: TObject);
|
||||
|
||||
function AddNodeData(Parent: PVirtualNode; NodeType: TGeneratorNodeType; const Text: String;
|
||||
const Value: String = ''): PVirtualNode;
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
begin
|
||||
Result := TreeView.AddChild(Parent);
|
||||
NodeData := TreeView.GetNodeData(Result);
|
||||
if (Assigned(NodeData)) then
|
||||
begin
|
||||
NodeData^.NodeType := NodeType;
|
||||
NodeData^.Text := Text;
|
||||
case NodeType of
|
||||
ntOperation:
|
||||
begin
|
||||
NodeData^.ProgressActive := false;
|
||||
NodeData^.ProgressUpdate(0);
|
||||
end;
|
||||
ntValue:
|
||||
NodeData^.Value := Value;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
Category: PVirtualNode;
|
||||
begin
|
||||
TreeView.NodeDataSize := SizeOf(TGeneratorNodeData);
|
||||
TreeView.BeginUpdate;
|
||||
try
|
||||
Category := AddNodeData(nil, ntCategory, 'Progress');
|
||||
FProgressNode[woIndexingDefinitions] :=
|
||||
AddNodeData(Category, ntOperation, 'Indexing definitions');
|
||||
FProgressNode[woIndexingFilters] :=
|
||||
AddNodeData(Category, ntOperation, 'Indexing filters');
|
||||
FProgressNode[woGeneratingFilterFiles] :=
|
||||
AddNodeData(Category, ntOperation, 'Generating filter files');
|
||||
FProgressNode[woGeneratingDefinitionFiles] :=
|
||||
AddNodeData(Category, ntOperation, 'Generating definition files');
|
||||
FProgressNode[woGeneratingMnemonicFiles] :=
|
||||
AddNodeData(Category, ntOperation, 'Generating mnemonic files');
|
||||
FProgressNodeTotal :=
|
||||
AddNodeData(Category, ntOperation, 'Total progress');
|
||||
TreeView.Expanded[Category] := true;
|
||||
AddNodeData(nil, ntSpacer, '');
|
||||
Category := AddNodeData(nil, ntCategory, 'Statistics');
|
||||
FInfoNode[0] := AddNodeData(Category, ntValue, 'Filter Count', '-');
|
||||
FInfoNode[1] := AddNodeData(Category, ntValue, 'Definition Count', '-');
|
||||
FInfoNode[2] := AddNodeData(Category, ntValue, 'Mnemonic Count', '-');
|
||||
FInfoNode[3] := AddNodeData(Category, ntValue, 'Filter Size', '-');
|
||||
FInfoNode[4] := AddNodeData(Category, ntValue, 'Definition Size', '-');
|
||||
FInfoNode[5] := AddNodeData(Category, ntValue, 'MnemonicSize', '-');
|
||||
FInfoNode[6] := AddNodeData(Category, ntValue, 'TotalSize', '-');
|
||||
TreeView.Expanded[Category] := true;
|
||||
finally
|
||||
TreeView.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.GeneratorWork(Sender: TObject; WorkCount: Integer);
|
||||
var
|
||||
Node: PVirtualNode;
|
||||
NodeData: PGeneratorNodeData;
|
||||
ProgressTotal: Double;
|
||||
begin
|
||||
NodeData := TreeView.GetNodeData(FProgressNode[FCurrentOperation]);
|
||||
NodeData^.WorkCountUpdate(WorkCount);
|
||||
if (NodeData^.IsProgressUpdateStep(WorkCount)) then
|
||||
pbTotalProgress.Position := pbTotalProgress.Max - pbCurrentOperation.Max + WorkCount;
|
||||
pbCurrentOperation.Position := WorkCount;
|
||||
if ((WorkCount mod pbCurrentOperation.Tag) = 0) then
|
||||
begin
|
||||
TreeView.RepaintNode(FProgressNode[FCurrentOperation]);
|
||||
ProgressTotal := 0;
|
||||
for Node in FProgressNode do
|
||||
begin
|
||||
NodeData := TreeView.GetNodeData(Node);
|
||||
ProgressTotal := ProgressTotal + NodeData^.Progress;
|
||||
end;
|
||||
NodeData := TreeView.GetNodeData(FProgressNodeTotal);
|
||||
NodeData^.ProgressUpdate(ProgressTotal / Length(FProgressNode));
|
||||
TreeView.RepaintNode(FProgressNodeTotal);
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.GeneratorWorkEnd(Sender: TObject);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
begin
|
||||
NodeData := TreeView.GetNodeData(FProgressNode[FCurrentOperation]);
|
||||
NodeData^.ProgressActive := false;
|
||||
NodeData^.ProgressUpdate(1);
|
||||
TreeView.RepaintNode(FProgressNode[FCurrentOperation]);
|
||||
NodeData := TreeView.GetNodeData(FProgressNodeTotal);
|
||||
if (FCurrentOperation = High(TGeneratorWorkOperation)) then
|
||||
begin
|
||||
NodeData^.ProgressActive := false;
|
||||
end;
|
||||
NodeData^.ProgressUpdate((Integer(FCurrentOperation) + 1) / Length(FProgressNode));
|
||||
TreeView.RepaintNode(FProgressNodeTotal);
|
||||
lblOperationName.Caption := '';
|
||||
pbTotalProgress.Position := pbTotalProgress.Max;
|
||||
pbCurrentOperation.Position := pbCurrentOperation.Max;
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.GeneratorWorkStart(Sender: TObject; Operation: TGeneratorWorkOperation;
|
||||
MinWorkCount, MaxWorkCount: Integer);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
procedure TfrmGenerator.GeneratorWorkStart(Sender: TObject; const OperationName: String;
|
||||
OperationCount, OperationNumber: Integer; MinWorkCount, MaxWorkCount: Integer);
|
||||
begin
|
||||
FCurrentOperation := Operation;
|
||||
NodeData := TreeView.GetNodeData(FProgressNode[Operation]);
|
||||
NodeData^.ProgressInit(MaxWorkCount, MinWorkCount);
|
||||
NodeData^.ProgressActive := true;
|
||||
TreeView.RepaintNode(FProgressNode[FCurrentOperation]);
|
||||
NodeData := TreeView.GetNodeData(FProgressNodeTotal);
|
||||
if (FCurrentOperation = Low(TGeneratorWorkOperation)) then
|
||||
lblOperationName.Caption := OperationName;
|
||||
pbTotalProgress.Position := pbTotalProgress.Max;
|
||||
pbTotalProgress.Min := pbTotalProgress.Min + MinWorkCount;
|
||||
pbTotalProgress.Max := pbTotalProgress.Max + MaxWorkCount;
|
||||
pbCurrentOperation.Position := MinWorkCount;
|
||||
pbCurrentOperation.Min := MinWorkCount;
|
||||
pbCurrentOperation.Max := MaxWorkCount;
|
||||
if ((MaxWorkCount - MinWorkCount) > 1000) then
|
||||
begin
|
||||
NodeData^.ProgressActive := true;
|
||||
TreeView.RepaintNode(FProgressNodeTotal);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.TreeViewBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
|
||||
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
|
||||
var ContentRect: TRect);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
ProgressWidth: Integer;
|
||||
begin
|
||||
if (Column = 1) then
|
||||
pbCurrentOperation.Tag := 100;
|
||||
end else if ((MaxWorkCount - MinWorkCount) > 100) then
|
||||
begin
|
||||
NodeData := Sender.GetNodeData(Node);
|
||||
if (Assigned(NodeData) and (NodeData^.NodeType = ntOperation) and
|
||||
(NodeData^.Progress <> 1) and (NodeData^.Progress <> 0)) then
|
||||
begin
|
||||
TargetCanvas.Pen.Color := $0000A162;
|
||||
TargetCanvas.Brush.Color := $0055F2B5;
|
||||
TargetCanvas.Rectangle(CellRect.Left, CellRect.Top, CellRect.Right,
|
||||
CellRect.Bottom - CellRect.Top);
|
||||
TargetCanvas.Pen.Color := $0000A162;
|
||||
TargetCanvas.Brush.Color := $000FE18E;
|
||||
ProgressWidth := Round(NodeData^.Progress * (CellRect.Right - CellRect.Left));
|
||||
TargetCanvas.Rectangle(CellRect.Left, CellRect.Top, CellRect.Left + ProgressWidth,
|
||||
CellRect.Bottom - CellRect.Top);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.TreeViewCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
var Allowed: Boolean);
|
||||
begin
|
||||
Allowed := false;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.TreeViewFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
begin
|
||||
NodeData := Sender.GetNodeData(Node);
|
||||
if (Assigned(NodeData)) then
|
||||
pbCurrentOperation.Tag := 10;
|
||||
end else
|
||||
begin
|
||||
Finalize(NodeData^);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.TreeViewGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Kind: TVTImageKind; Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
begin
|
||||
ImageIndex := -1;
|
||||
if (Column = 0) and (Kind in [ikNormal, ikSelected]) then
|
||||
begin
|
||||
NodeData := Sender.GetNodeData(Node);
|
||||
if (Assigned(NodeData)) then
|
||||
begin
|
||||
case NodeData^.NodeType of
|
||||
ntCategory:
|
||||
ImageIndex := 0;
|
||||
ntOperation:
|
||||
begin
|
||||
if (NodeData^.ProgressActive) then
|
||||
begin
|
||||
ImageIndex := 2;
|
||||
end else
|
||||
begin
|
||||
ImageIndex := 1;
|
||||
end;
|
||||
end;
|
||||
ntValue:
|
||||
ImageIndex := 3;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmGenerator.TreeViewGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
|
||||
var
|
||||
NodeData: PGeneratorNodeData;
|
||||
begin
|
||||
CellText := '';
|
||||
NodeData := Sender.GetNodeData(Node);
|
||||
if (Assigned(NodeData)) then
|
||||
begin
|
||||
if (NodeData^.NodeType in [ntCategory, ntOperation, ntValue]) then
|
||||
begin
|
||||
case Column of
|
||||
0: CellText := NodeData^.Text;
|
||||
1: CellText := NodeData^.Value;
|
||||
end;
|
||||
end;
|
||||
pbCurrentOperation.Tag := 1;
|
||||
end;
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
|
|
@ -2,8 +2,8 @@ object frmMain: TfrmMain
|
|||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'InstructionEditor'
|
||||
ClientHeight = 761
|
||||
ClientWidth = 1084
|
||||
ClientHeight = 961
|
||||
ClientWidth = 1384
|
||||
Color = clBtnFace
|
||||
Constraints.MinHeight = 800
|
||||
Constraints.MinWidth = 1100
|
||||
|
@ -23,7 +23,7 @@ object frmMain: TfrmMain
|
|||
object Ribbon: TdxRibbon
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 1084
|
||||
Width = 1384
|
||||
Height = 127
|
||||
BarManager = BarManager
|
||||
Style = rs2010
|
||||
|
@ -58,8 +58,8 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object StatusBar: TdxRibbonStatusBar
|
||||
Left = 0
|
||||
Top = 736
|
||||
Width = 1084
|
||||
Top = 936
|
||||
Width = 1384
|
||||
Height = 25
|
||||
Panels = <
|
||||
item
|
||||
|
@ -100,13 +100,13 @@ object frmMain: TfrmMain
|
|||
Left = 364
|
||||
Top = 127
|
||||
Width = 3
|
||||
Height = 609
|
||||
Height = 809
|
||||
end
|
||||
object pnlInspector: TPanel
|
||||
Left = 0
|
||||
Top = 127
|
||||
Width = 364
|
||||
Height = 609
|
||||
Height = 809
|
||||
Align = alLeft
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 3
|
||||
|
@ -114,16 +114,16 @@ object frmMain: TfrmMain
|
|||
Left = 0
|
||||
Top = 0
|
||||
Width = 364
|
||||
Height = 609
|
||||
Height = 809
|
||||
Align = alClient
|
||||
DockingType = 5
|
||||
OriginalWidth = 364
|
||||
OriginalHeight = 609
|
||||
OriginalHeight = 809
|
||||
object LayoutDockSite: TdxLayoutDockSite
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 364
|
||||
Height = 609
|
||||
Height = 809
|
||||
DockingType = 0
|
||||
OriginalWidth = 300
|
||||
OriginalHeight = 200
|
||||
|
@ -132,7 +132,7 @@ object frmMain: TfrmMain
|
|||
Left = 0
|
||||
Top = 0
|
||||
Width = 364
|
||||
Height = 609
|
||||
Height = 809
|
||||
ActiveChildIndex = -1
|
||||
AllowFloating = False
|
||||
AutoHide = False
|
||||
|
@ -146,7 +146,7 @@ object frmMain: TfrmMain
|
|||
Left = 0
|
||||
Top = 0
|
||||
Width = 364
|
||||
Height = 431
|
||||
Height = 531
|
||||
AllowFloating = False
|
||||
AutoHide = False
|
||||
Caption = 'Property Inspector'
|
||||
|
@ -157,12 +157,12 @@ object frmMain: TfrmMain
|
|||
TabsProperties.CustomButtons.Buttons = <>
|
||||
DockingType = 2
|
||||
OriginalWidth = 350
|
||||
OriginalHeight = 431
|
||||
OriginalHeight = 531
|
||||
object Inspector: TcxRTTIInspector
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 350
|
||||
Height = 396
|
||||
Height = 496
|
||||
Align = alClient
|
||||
Constraints.MinWidth = 350
|
||||
LookAndFeel.NativeStyle = False
|
||||
|
@ -176,30 +176,12 @@ object frmMain: TfrmMain
|
|||
OnItemChanged = InspectorItemChanged
|
||||
Version = 1
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 279
|
||||
Top = -5
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Button1'
|
||||
TabOrder = 1
|
||||
OnClick = Button1Click
|
||||
end
|
||||
object Button2: TButton
|
||||
Left = 136
|
||||
Top = 104
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Button2'
|
||||
TabOrder = 2
|
||||
OnClick = Button2Click
|
||||
end
|
||||
end
|
||||
object pnlPropertyInformation: TdxDockPanel
|
||||
Left = 0
|
||||
Top = 431
|
||||
Top = 531
|
||||
Width = 364
|
||||
Height = 178
|
||||
Height = 278
|
||||
AllowFloating = False
|
||||
AutoHide = False
|
||||
Caption = 'Property Information'
|
||||
|
@ -210,13 +192,13 @@ object frmMain: TfrmMain
|
|||
TabsProperties.CustomButtons.Buttons = <>
|
||||
DockingType = 2
|
||||
OriginalWidth = 185
|
||||
OriginalHeight = 178
|
||||
OriginalHeight = 278
|
||||
object lblPropertyInfo: TLabel
|
||||
AlignWithMargins = True
|
||||
Left = 3
|
||||
Top = 3
|
||||
Width = 344
|
||||
Height = 137
|
||||
Height = 237
|
||||
Align = alClient
|
||||
Caption = 'No info text available'
|
||||
Constraints.MinHeight = 120
|
||||
|
@ -237,8 +219,8 @@ object frmMain: TfrmMain
|
|||
object EditorTree: TVirtualStringTree
|
||||
Left = 367
|
||||
Top = 127
|
||||
Width = 717
|
||||
Height = 609
|
||||
Width = 1017
|
||||
Height = 809
|
||||
Align = alClient
|
||||
Header.AutoSizeIndex = 0
|
||||
Header.Font.Charset = DEFAULT_CHARSET
|
||||
|
@ -264,7 +246,7 @@ object frmMain: TfrmMain
|
|||
Columns = <
|
||||
item
|
||||
Position = 0
|
||||
Width = 10
|
||||
Width = 83
|
||||
WideText = 'Index'
|
||||
end
|
||||
item
|
||||
|
@ -300,6 +282,11 @@ object frmMain: TfrmMain
|
|||
end
|
||||
item
|
||||
Position = 7
|
||||
Width = 90
|
||||
WideText = 'OP E'
|
||||
end
|
||||
item
|
||||
Position = 8
|
||||
Width = 150
|
||||
WideText = 'Comment'
|
||||
end>
|
||||
|
@ -579,9 +566,9 @@ object frmMain: TfrmMain
|
|||
OnClick = bbDeleteDefinitionClick
|
||||
end
|
||||
object lbGenerate: TdxBarLargeButton
|
||||
Caption = 'Generate C++ Files'
|
||||
Caption = 'Code Generator'
|
||||
Category = 0
|
||||
Hint = 'Generate C++ Files'
|
||||
Hint = 'Code Generator'
|
||||
Visible = ivAlways
|
||||
LargeImageIndex = 5
|
||||
OnClick = lbGenerateClick
|
||||
|
|
|
@ -10,7 +10,7 @@ uses
|
|||
dxRibbonCustomizationForm, dxRibbonSkins, cxStyles, cxEdit, cxInplaceContainer, dxSkinsForm,
|
||||
dxStatusBar, dxRibbonStatusBar, cxClasses, dxRibbon, dxBar, dxRibbonForm, cxSplitter, cxPC,
|
||||
dxBarExtItems, dxSkinsdxDockControlPainter, dxDockControl, dxSkinsdxRibbonPainter,
|
||||
dxGDIPlusClasses, VirtualTrees, untInstructionEditor;
|
||||
dxGDIPlusClasses, VirtualTrees, Zydis.InstructionEditor;
|
||||
|
||||
// TODO: Add support for multi node selection and allow copy / paste / cut / delete of mutiple
|
||||
// definitions
|
||||
|
@ -69,8 +69,6 @@ type
|
|||
dxBarSeparator4: TdxBarSeparator;
|
||||
bbExpandLeaf: TdxBarButton;
|
||||
bbCollapseLeaf: TdxBarButton;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormResize(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
|
@ -104,11 +102,9 @@ type
|
|||
Y: Integer);
|
||||
procedure bbExpandLeafClick(Sender: TObject);
|
||||
procedure bbCollapseLeafClick(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure Button2Click(Sender: TObject);
|
||||
procedure EditorTreeGetImageIndex(Sender: TBaseVirtualTree;
|
||||
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
|
||||
var Ghosted: Boolean; var ImageIndex: TImageIndex);
|
||||
var Ghosted: Boolean; var ImageIndex: System.UITypes.TImageIndex);
|
||||
strict private
|
||||
FEditor: TInstructionEditor;
|
||||
FUpdating: Boolean;
|
||||
|
@ -788,7 +784,7 @@ end;
|
|||
|
||||
procedure TfrmMain.EditorTreeGetImageIndex(Sender: TBaseVirtualTree;
|
||||
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
|
||||
var Ghosted: Boolean; var ImageIndex: TImageIndex);
|
||||
var Ghosted: Boolean; var ImageIndex: System.UITypes.TImageIndex);
|
||||
var
|
||||
NodeData: PEditorNodeData;
|
||||
begin
|
||||
|
@ -889,7 +885,8 @@ begin
|
|||
4: CellText := NodeData^.Definition.Operands.OperandB.GetDescription(true);
|
||||
5: CellText := NodeData^.Definition.Operands.OperandC.GetDescription(true);
|
||||
6: CellText := NodeData^.Definition.Operands.OperandD.GetDescription(true);
|
||||
7: CellText := NodeData^.Definition.Comment;
|
||||
7: CellText := NodeData^.Definition.Operands.OperandE.GetDescription(true);
|
||||
8: CellText := NodeData^.Definition.Comment;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -909,15 +906,9 @@ begin
|
|||
if (Assigned(NodeData) and (NodeData^.NodeType = ntInstructionDefinition)) then
|
||||
begin
|
||||
S := '';
|
||||
for I := 0 to 3 do
|
||||
for I := 0 to NodeData^.Definition.Operands.OperandCount - 1 do
|
||||
begin
|
||||
O := nil;
|
||||
case I of
|
||||
0: O := NodeData^.Definition.Operands.OperandA;
|
||||
1: O := NodeData^.Definition.Operands.OperandB;
|
||||
2: O := NodeData^.Definition.Operands.OperandC;
|
||||
3: O := NodeData^.Definition.Operands.OperandD;
|
||||
end;
|
||||
O := NodeData^.Definition.Operands.Operands[I];
|
||||
S := S + IntToStr(Integer(O.OperandType)) + ',' + IntToStr(Integer(O.Encoding)) + ',' +
|
||||
IntToStr(Integer(O.AccessMode)) + ',';
|
||||
end;
|
||||
|
@ -936,24 +927,23 @@ begin
|
|||
if (Assigned(NodeData) and (NodeData^.NodeType = ntInstructionDefinition)) then
|
||||
begin
|
||||
A := Clipboard.AsText.Split([',']);
|
||||
if (Length(A) >= 12) then
|
||||
if (Length(A) >= 15) then
|
||||
begin
|
||||
I := 0;
|
||||
J := 0;
|
||||
while (J < 4) do
|
||||
begin
|
||||
O := nil;
|
||||
case J of
|
||||
0: O := NodeData^.Definition.Operands.OperandA;
|
||||
1: O := NodeData^.Definition.Operands.OperandB;
|
||||
2: O := NodeData^.Definition.Operands.OperandC;
|
||||
3: O := NodeData^.Definition.Operands.OperandD;
|
||||
NodeData^.Definition.BeginUpdate;
|
||||
try
|
||||
while (J < 5) do
|
||||
begin
|
||||
O := NodeData^.Definition.Operands.Operands[J];
|
||||
O.OperandType := TOperandType(StrToInt(A[I]));
|
||||
O.Encoding := TOperandEncoding(StrToInt(A[I + 1]));
|
||||
O.AccessMode := TOperandAccessMode(StrToInt(A[I + 2]));
|
||||
Inc(I, 3);
|
||||
Inc(J);
|
||||
end;
|
||||
O.OperandType := TOperandType(StrToInt(A[I]));
|
||||
O.Encoding := TOperandEncoding(StrToInt(A[I + 1]));
|
||||
O.AccessMode := TOperandAccessMode(StrToInt(A[I + 2]));
|
||||
Inc(I, 3);
|
||||
Inc(J);
|
||||
finally
|
||||
NodeData^.Definition.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -1070,355 +1060,6 @@ begin
|
|||
ExpandAllNodes(true);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.Button1Click(Sender: TObject);
|
||||
|
||||
procedure DeleteDuplicates(T: TInstructionFilter);
|
||||
var
|
||||
L: TList<TInstructionDefinition>;
|
||||
D: TInstructionDefinition;
|
||||
I, J: Integer;
|
||||
B: Boolean;
|
||||
begin
|
||||
if (T is TDefinitionContainer) then
|
||||
begin
|
||||
L := TList<TInstructionDefinition>.Create;
|
||||
try
|
||||
for I := (T as TDefinitionContainer).DefinitionCount - 1 downto 0 do
|
||||
begin
|
||||
D := (T as TDefinitionContainer).Definitions[I];
|
||||
B := true;
|
||||
for J := 0 to L.Count - 1 do
|
||||
begin
|
||||
if ((D.Mnemonic = L[J].Mnemonic) and D.Operands.Equals(L[J].Operands) and
|
||||
D.CPUID.Equals(L[J].CPUID) and (D.EVEXCD8Scale = L[J].EVEXCD8Scale)) then
|
||||
begin
|
||||
L[J].Flags := L[J].Flags + D.Flags;
|
||||
D.Free;
|
||||
B := false;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (B) then L.Add(D);
|
||||
end;
|
||||
finally
|
||||
L.Free;
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
for I := 0 to T.Capacity - 1 do
|
||||
begin
|
||||
if Assigned(T.Items[I]) then
|
||||
begin
|
||||
DeleteDuplicates(T.Items[I]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
I, J, K, RegCount, MemIndex: Integer;
|
||||
S: String;
|
||||
A: TArray<String>;
|
||||
D: TInstructionDefinition;
|
||||
O: TInstructionOperand;
|
||||
begin
|
||||
FEditor.BeginUpdate;
|
||||
|
||||
for I := 0 to FEditor.DefinitionCount - 1 do
|
||||
begin
|
||||
D := FEditor.Definitions[I];
|
||||
if (D.Encoding <> ieEVEX) then Continue;
|
||||
S := D.Comment;
|
||||
J := 1;
|
||||
while (J < Length(S)) and (S[J] <> ' ') do Inc(J);
|
||||
Delete(S, 1, J);
|
||||
A := S.Split([',']);
|
||||
for J := Low(A) to High(A) do
|
||||
begin
|
||||
A[J] := Trim(A[J]);
|
||||
end;
|
||||
S := A[High(A)];
|
||||
J := 1;
|
||||
while (J < Length(S)) and (S[J] <> ' ') do Inc(J);
|
||||
Delete(S, J, Length(S));
|
||||
A[High(A)] := S;
|
||||
if (A[High(A)][1] = '(') then SetLength(A, Length(A) - 1);
|
||||
|
||||
RegCount := 0;
|
||||
MemIndex := -1;
|
||||
D.BeginUpdate;
|
||||
for J := Low(A) to High(A) do
|
||||
begin
|
||||
O := nil;
|
||||
case J of
|
||||
0: O := D.Operands.OperandA;
|
||||
1: O := D.Operands.OperandB;
|
||||
2: O := D.Operands.OperandC;
|
||||
3: O := D.Operands.OperandD;
|
||||
end;
|
||||
|
||||
if (Pos('{1to', A[J]) > 0) then D.Flags := D.Flags + [ifHasEVEXBC];
|
||||
if (Pos('{sae}', A[J]) > 0) then D.Flags := D.Flags + [ifHasEVEXSAE];
|
||||
|
||||
if (Pos('VK1', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK2', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK4', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK8', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK16', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK32', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
if (Pos('VK64', A[J]) > 0) then O.OperandType := optMSKR;
|
||||
|
||||
if (Pos('GR8', A[J]) > 0) then O.OperandType := optGPR8;
|
||||
if (Pos('GR16', A[J]) > 0) then O.OperandType := optGPR16;
|
||||
if (Pos('GR32', A[J]) > 0) then O.OperandType := optGPR32;
|
||||
if (Pos('GR64', A[J]) > 0) then O.OperandType := optGPR64;
|
||||
if (Pos('8mem', A[J]) > 0) then O.OperandType := optMem8;
|
||||
if (Pos('16mem', A[J]) > 0) then O.OperandType := optMem16;
|
||||
if (Pos('32mem', A[J]) > 0) then
|
||||
begin
|
||||
if (Pos('{1to2}', A[J]) > 0) then O.OperandType := optMem32Bcst2 else
|
||||
if (Pos('{1to4}', A[J]) > 0) then O.OperandType := optMem32Bcst4 else
|
||||
if (Pos('{1to8}', A[J]) > 0) then O.OperandType := optMem32Bcst8 else
|
||||
if (Pos('{1to16}', A[J]) > 0) then O.OperandType := optMem32Bcst16 else
|
||||
O.OperandType := optMem32;
|
||||
end;
|
||||
if (Pos('64mem', A[J]) > 0) then
|
||||
begin
|
||||
if (Pos('{1to2}', A[J]) > 0) then O.OperandType := optMem64Bcst2 else
|
||||
if (Pos('{1to4}', A[J]) > 0) then O.OperandType := optMem64Bcst4 else
|
||||
if (Pos('{1to8}', A[J]) > 0) then O.OperandType := optMem64Bcst8 else
|
||||
if (Pos('{1to16}', A[J]) > 0) then O.OperandType := optMem64Bcst16 else
|
||||
O.OperandType := optMem64;
|
||||
end;
|
||||
|
||||
if (Pos('VR128', A[J]) > 0) then O.OperandType := optVR128;
|
||||
if (Pos('VR256', A[J]) > 0) then O.OperandType := optVR256;
|
||||
if (Pos('VR512', A[J]) > 0) then O.OperandType := optVR512;
|
||||
if (Pos('128mem', A[J]) > 0) then O.OperandType := optMem128;
|
||||
if (Pos('256mem', A[J]) > 0) then O.OperandType := optMem256;
|
||||
if (Pos('512mem', A[J]) > 0) then O.OperandType := optMem512;
|
||||
|
||||
if (Pos('vx32', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vx64', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vx128', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vx256', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vx512', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vy32', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vy64', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vy128', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vy256', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vy512', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vz32', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vz64', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vz128', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vz256', A[J]) > 0) then O.Encoding := opeNone;
|
||||
if (Pos('vz512', A[J]) > 0) then O.Encoding := opeNone;
|
||||
|
||||
if (Pos('imm8', A[J]) > 0) then O.OperandType := optImm8;
|
||||
if (Pos('imm8u', A[J]) > 0) then O.OperandType := optImm8U;
|
||||
if (Pos('u8imm', A[J]) > 0) then O.OperandType := optImm8U;
|
||||
|
||||
if (O.Encoding = opeModrmRm) then
|
||||
begin
|
||||
MemIndex := J;
|
||||
if (D.EVEXCD8Scale <> 0) then
|
||||
begin
|
||||
case D.EvexCD8Scale of
|
||||
1: O.Encoding := opeModrmRmCD1;
|
||||
2: O.Encoding := opeModrmRmCD2;
|
||||
4: O.Encoding := opeModrmRmCD4;
|
||||
8: O.Encoding := opeModrmRmCD8;
|
||||
16: O.Encoding := opeModrmRmCD16;
|
||||
32: O.Encoding := opeModrmRmCD32;
|
||||
64: O.Encoding := opeModrmRmCD64;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if (O.Encoding = opeModrmReg) then Inc(RegCount);
|
||||
end;
|
||||
D.Operands.OperandA.AccessMode := opaWrite;
|
||||
if (RegCount = 3) or ((RegCount = 2) and (MemIndex > -1) and (MemIndex <> 1)) then
|
||||
begin
|
||||
D.Operands.OperandB.Encoding := opeVexVVVV;
|
||||
end;
|
||||
D.EndUpdate;
|
||||
|
||||
end;
|
||||
DeleteDuplicates(FEditor.RootTable.Items[$62]);
|
||||
FEditor.EndUpdate;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.Button2Click(Sender: TObject);
|
||||
|
||||
function BitsNeeded(N: Integer): Integer;
|
||||
begin
|
||||
Result := Floor(log2(n) + 1);
|
||||
end;
|
||||
|
||||
var
|
||||
Mnemonics: TDictionary<String, Boolean>;
|
||||
Node: PVirtualNode;
|
||||
NodeData: PEditorNodeData;
|
||||
LOPS: TList<TPair<TInstructionOperands, Integer>>;
|
||||
LCPUID: TList<TPair<TCPUIDFeatureFlagSet, Integer>>;
|
||||
LEFLAGS: TList<TPair<TX86Flags, Integer>>;
|
||||
LREGS: TList<TPair<TX86RegisterSet, Integer>>;
|
||||
I, J, Bits: Integer;
|
||||
B: Boolean;
|
||||
POPS: TPair<TInstructionOperands, Integer>;
|
||||
PCPUID: TPair<TCPUIDFeatureFlagSet, Integer>;
|
||||
PEFLAGS: TPair<TX86Flags, Integer>;
|
||||
PREGS: TPair<TX86RegisterSet, Integer>;
|
||||
begin
|
||||
Bits := 4; // EVEX Info
|
||||
|
||||
Mnemonics := TDictionary<String, Boolean>.Create;
|
||||
try
|
||||
Node := EditorTree.GetFirst;
|
||||
while Assigned(Node) do
|
||||
begin
|
||||
NodeData := EditorTree.GetNodeData(Node);
|
||||
if (NodeData^.NodeType = ntInstructionDefinition) then
|
||||
begin
|
||||
if (not Mnemonics.ContainsKey(NodeData^.Definition.Mnemonic)) then
|
||||
begin
|
||||
Mnemonics.Add(NodeData^.Definition.Mnemonic, true);
|
||||
end;
|
||||
end;
|
||||
Node := EditorTree.GetNext(Node);
|
||||
end;
|
||||
ShowMessage('Mnemonics: ' + IntToStr(Mnemonics.Count) + ' (' + IntToStr(BitsNeeded(Mnemonics.Count)) + ' bit)');
|
||||
Inc(Bits, BitsNeeded(Mnemonics.Count));
|
||||
finally
|
||||
Mnemonics.Free;
|
||||
end;
|
||||
|
||||
LOPS := TList<TPair<TInstructionOperands, Integer>>.Create;
|
||||
for I := 0 to FEditor.DefinitionCount - 1 do
|
||||
begin
|
||||
B := false;
|
||||
for J := 0 to LOPS.Count - 1 do
|
||||
begin
|
||||
if (LOPS[J].Key.Equals(FEditor.Definitions[I].Operands)) then
|
||||
begin
|
||||
POPS := LOPS[J];
|
||||
Inc(POPS.Value);
|
||||
LOPS[J] := POPS;
|
||||
B := true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (not B) then
|
||||
begin
|
||||
POPS.Key := FEditor.Definitions[I].Operands;
|
||||
POPS.Value := 1;
|
||||
LOPS.Add(POPS);
|
||||
end;
|
||||
end;
|
||||
ShowMessage('OPS: ' + IntToStr(LOPS.Count) + ' (' + IntToStr(BitsNeeded(LOPS.Count)) + ' bit)');
|
||||
Inc(Bits, BitsNeeded(LOPS.Count));
|
||||
LOPS.Free;
|
||||
|
||||
LCPUID := TList<TPair<TCPUIDFeatureFlagSet, Integer>>.Create;
|
||||
for I := 0 to FEditor.DefinitionCount - 1 do
|
||||
begin
|
||||
B := false;
|
||||
for J := 0 to LOPS.Count - 1 do
|
||||
begin
|
||||
if (LCPUID[J].Key = FEditor.Definitions[I].CPUID.FeatureFlags) then
|
||||
begin
|
||||
PCPUID := LCPUID[J];
|
||||
Inc(PCPUID.Value);
|
||||
LCPUID[J] := PCPUID;
|
||||
B := true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (not B) then
|
||||
begin
|
||||
PCPUID.Key := FEditor.Definitions[I].CPUID.FeatureFlags;
|
||||
PCPUID.Value := 1;
|
||||
LCPUID.Add(PCPUID);
|
||||
end;
|
||||
end;
|
||||
ShowMessage('CPUID: ' + IntToStr(LCPUID.Count) + ' (' + IntToStr(BitsNeeded(LCPUID.Count)) + ' bit)');
|
||||
Inc(Bits, BitsNeeded(LCPUID.Count));
|
||||
LCPUID.Free;
|
||||
|
||||
LEFLAGS := TList<TPair<TX86Flags, Integer>>.Create;
|
||||
for I := 0 to FEditor.DefinitionCount - 1 do
|
||||
begin
|
||||
B := false;
|
||||
for J := 0 to LOPS.Count - 1 do
|
||||
begin
|
||||
if (LEFLAGS[J].Key.Equals(FEditor.Definitions[I].X86Flags)) then
|
||||
begin
|
||||
PEFLAGS := LEFLAGS[J];
|
||||
Inc(PEFLAGS.Value);
|
||||
LEFLAGS[J] := PEFLAGS;
|
||||
B := true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (not B) then
|
||||
begin
|
||||
PEFLAGS.Key := FEditor.Definitions[I].X86Flags;
|
||||
PEFLAGS.Value := 1;
|
||||
LEFLAGS.Add(PEFLAGS);
|
||||
end;
|
||||
end;
|
||||
ShowMessage('EFLAGS: ' + IntToStr(LEFLAGS.Count) + ' (' + IntToStr(BitsNeeded(LEFLAGS.Count)) + ' bit)');
|
||||
Inc(Bits, BitsNeeded(LEFLAGS.Count));
|
||||
LEFLAGS.Free;
|
||||
|
||||
LREGS := TList<TPair<TX86RegisterSet, Integer>>.Create;
|
||||
for I := 0 to FEditor.DefinitionCount - 1 do
|
||||
begin
|
||||
B := false;
|
||||
for J := 0 to LOPS.Count - 1 do
|
||||
begin
|
||||
if (LREGS[J].Key = FEditor.Definitions[I].ImplicitRead.Registers) then
|
||||
begin
|
||||
PREGS := LREGS[J];
|
||||
Inc(PREGS.Value);
|
||||
LREGS[J] := PREGS;
|
||||
B := true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (not B) then
|
||||
begin
|
||||
PREGS.Key := FEditor.Definitions[I].ImplicitRead.Registers;
|
||||
PREGS.Value := 1;
|
||||
LREGS.Add(PREGS);
|
||||
end;
|
||||
B := false;
|
||||
for J := 0 to LOPS.Count - 1 do
|
||||
begin
|
||||
if (LREGS[J].Key = FEditor.Definitions[I].ImplicitWrite.Registers) then
|
||||
begin
|
||||
PREGS := LREGS[J];
|
||||
Inc(PREGS.Value);
|
||||
LREGS[J] := PREGS;
|
||||
B := true;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if (not B) then
|
||||
begin
|
||||
PREGS.Key := FEditor.Definitions[I].ImplicitWrite.Registers;
|
||||
PREGS.Value := 1;
|
||||
LREGS.Add(PREGS);
|
||||
end;
|
||||
end;
|
||||
ShowMessage('REGS: ' + IntToStr(LREGS.Count) + ' (' + IntToStr(BitsNeeded(LREGS.Count)) + ' bit)');
|
||||
Inc(Bits, BitsNeeded(LREGS.Count));
|
||||
LEFLAGS.Free;
|
||||
|
||||
ShowMessage('BytesNeeded: ' + IntToStr(Ceil(Bits / 8)) + ' (' + IntToStr(Bits) + ' bits)');
|
||||
end;
|
||||
|
||||
procedure TfrmMain.bbCollapseLeafClick(Sender: TObject);
|
||||
begin
|
||||
ExpandLeaf(EditorTree.FocusedNode, false);
|
||||
|
|
|
@ -3,18 +3,18 @@ program InstructionEditor;
|
|||
uses
|
||||
Vcl.Forms,
|
||||
formMain in 'Forms\formMain.pas' {frmMain},
|
||||
untInstructionEditor in 'untInstructionEditor.pas',
|
||||
untInstructionFilters in 'untInstructionFilters.pas',
|
||||
Zydis.InstructionEditor in 'Zydis.InstructionEditor.pas',
|
||||
Zydis.InstructionFilters in 'Zydis.InstructionFilters.pas',
|
||||
untHelperClasses in 'untHelperClasses.pas',
|
||||
formEditorCPUIDFeatureFlags in 'Forms\Editors\formEditorCPUIDFeatureFlags.pas' {frmEditorCPUIDFeatureFlags},
|
||||
Vcl.Themes,
|
||||
Vcl.Styles,
|
||||
untPropertyHints in 'untPropertyHints.pas',
|
||||
formCreateDefinition in 'Forms\formCreateDefinition.pas' {frmCreateDefinition},
|
||||
untPropertyEditors in 'untPropertyEditors.pas',
|
||||
formEditorX86Registers in 'Forms\Editors\formEditorX86Registers.pas' {frmEditorX86Registers},
|
||||
formGenerator in 'Forms\formGenerator.pas' {frmGenerator},
|
||||
formEditorInstructionOperands in 'Forms\Editors\formEditorInstructionOperands.pas' {frmEditorInstructionOperands};
|
||||
Zydis.CodeGenerator in 'Zydis.CodeGenerator.pas',
|
||||
untPropertyEditors in 'untPropertyEditors.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
|
|
|
@ -134,8 +134,8 @@
|
|||
<Form>frmMain</Form>
|
||||
<FormType>dfm</FormType>
|
||||
</DCCReference>
|
||||
<DCCReference Include="untInstructionEditor.pas"/>
|
||||
<DCCReference Include="untInstructionFilters.pas"/>
|
||||
<DCCReference Include="Zydis.InstructionEditor.pas"/>
|
||||
<DCCReference Include="Zydis.InstructionFilters.pas"/>
|
||||
<DCCReference Include="untHelperClasses.pas"/>
|
||||
<DCCReference Include="Forms\Editors\formEditorCPUIDFeatureFlags.pas">
|
||||
<Form>frmEditorCPUIDFeatureFlags</Form>
|
||||
|
@ -146,7 +146,6 @@
|
|||
<Form>frmCreateDefinition</Form>
|
||||
<FormType>dfm</FormType>
|
||||
</DCCReference>
|
||||
<DCCReference Include="untPropertyEditors.pas"/>
|
||||
<DCCReference Include="Forms\Editors\formEditorX86Registers.pas">
|
||||
<Form>frmEditorX86Registers</Form>
|
||||
<FormType>dfm</FormType>
|
||||
|
@ -155,10 +154,8 @@
|
|||
<Form>frmGenerator</Form>
|
||||
<FormType>dfm</FormType>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Forms\Editors\formEditorInstructionOperands.pas">
|
||||
<Form>frmEditorInstructionOperands</Form>
|
||||
<FormType>dfm</FormType>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Zydis.CodeGenerator.pas"/>
|
||||
<DCCReference Include="untPropertyEditors.pas"/>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
unit untInstructionFilters;
|
||||
unit Zydis.InstructionFilters;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
untInstructionEditor;
|
||||
Zydis.InstructionEditor;
|
||||
|
||||
type
|
||||
TOpcodeFilter = class(TInstructionFilter)
|
|
@ -38,18 +38,11 @@ type
|
|||
function IsDefaultValue: Boolean; override;
|
||||
end;
|
||||
|
||||
TInstructionOperandsProperty = class(TcxClassProperty)
|
||||
public
|
||||
procedure Edit; override;
|
||||
function GetAttributes: TcxPropertyAttributes; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.SysUtils, System.TypInfo, System.Classes, Vcl.Forms, untInstructionEditor,
|
||||
untHelperClasses, formEditorCPUIDFeatureFlags, formEditorX86Registers,
|
||||
formEditorInstructionOperands, cxButtonEdit;
|
||||
System.SysUtils, System.TypInfo, System.Classes, Vcl.Forms, Zydis.InstructionEditor,
|
||||
untHelperClasses, formEditorCPUIDFeatureFlags, formEditorX86Registers, cxButtonEdit;
|
||||
|
||||
{ TOpcodeByteProperty }
|
||||
|
||||
|
@ -339,40 +332,12 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
{ TInstructionOperandsProperty }
|
||||
|
||||
procedure TInstructionOperandsProperty.Edit;
|
||||
var
|
||||
Form: TfrmEditorInstructionOperands;
|
||||
begin
|
||||
Form := TfrmEditorInstructionOperands.Create(Application);
|
||||
try
|
||||
Form.Caption := GetComponent(0).GetNamePath + '.' + GetName;
|
||||
Form.Operands := TInstructionOperands(GetOrdValue);
|
||||
Form.ShowModal;
|
||||
if (Form.ApplyChanges) then
|
||||
begin
|
||||
TInstructionOperands(GetOrdValue).Assign(Form.Operands);
|
||||
PostChangedNotification;
|
||||
end;
|
||||
finally
|
||||
Form.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TInstructionOperandsProperty.GetAttributes: TcxPropertyAttributes;
|
||||
begin
|
||||
Result := [ipaDialog, ipaSubProperties];
|
||||
end;
|
||||
|
||||
initialization
|
||||
// Register custom property editor for hexadecimal display of TOpcodeByte values
|
||||
cxRegisterPropertyEditor(TypeInfo(TOpcodeByte), nil, '', TOpcodeByteProperty);
|
||||
|
||||
// Register custom property editors for easy modification of the instruction-operands
|
||||
cxRegisterPropertyEditor(TypeInfo(TInstructionOperand), nil, '', TInstructionOperandProperty);
|
||||
cxRegisterPropertyEditor(TypeInfo(TInstructionOperands), nil, '', TInstructionOperandsProperty);
|
||||
cxRegisterEditPropertiesClass(TInstructionOperandsProperty, TcxButtonEditProperties);
|
||||
|
||||
// Delphi does not allow sets > 4 bytes as published values, so we have to use a wrapper class
|
||||
// and a custom editor
|
||||
|
|
|
@ -1,350 +0,0 @@
|
|||
unit untTableGenerator;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.Classes, System.Generics.Collections, untInstructionEditor;
|
||||
|
||||
type
|
||||
TTableGeneratorInfo = record
|
||||
public
|
||||
FilterCount: Integer;
|
||||
DefinitionCount: Integer;
|
||||
MnemonicCount: Integer;
|
||||
FilterSize: Cardinal;
|
||||
DefinitionSize: Cardinal;
|
||||
MnemonicSize: Cardinal;
|
||||
end;
|
||||
|
||||
TWorkOperation = (
|
||||
woIndexingFilters,
|
||||
woIndexingDefinitions,
|
||||
woGeneratingFilterFiles,
|
||||
woGeneratingDefinitionFiles
|
||||
);
|
||||
|
||||
TWorkStartEvent = procedure(Sender: TObject; Operation: TWorkOperation;
|
||||
MinWorkCount, MaxWorkCount: Integer) of Object;
|
||||
TWorkEvent = procedure(Sender: TObject; WorkCount: Integer) of Object;
|
||||
|
||||
TTableGenerator = class(TObject)
|
||||
strict private type
|
||||
TInstructionFilterMap = TObjectDictionary<TInstructionFilterClass, TList<TInstructionFilter>>;
|
||||
strict private
|
||||
FFilterMap: TInstructionFilterMap;
|
||||
FFilterCount: Integer;
|
||||
FDefinitionCount: Integer;
|
||||
FMnemonicCount: Integer;
|
||||
FFilterSize: Cardinal;
|
||||
FDefinitionSize: Cardinal;
|
||||
FMnemonicSize: Cardinal;
|
||||
strict private
|
||||
FOnWorkStart: TWorkStartEvent;
|
||||
FOnWork: TWorkEvent;
|
||||
FOnWorkEnd: TNotifyEvent;
|
||||
strict private
|
||||
procedure EditorFilterCreated(Sender: TObject; Filter: TInstructionFilter);
|
||||
strict private
|
||||
procedure WorkStart(Operation: TWorkOperation; MinWorkCount, MaxWorkCount: Integer); inline;
|
||||
procedure Work(WorkCount: Integer); inline;
|
||||
procedure WorkEnd; inline;
|
||||
strict private
|
||||
procedure FinalizeFilterTables(Editor: TInstructionEditor);
|
||||
|
||||
function GetNameForTable(FilterClass: TInstructionFilterClass): String; inline;
|
||||
function GetNameForType(FilterClass: TInstructionFilterClass): String; inline;
|
||||
procedure GenerateFilterFiles(const OutputDirectory: String;
|
||||
FilterMap: TInstructionFilterMap; Definitions: TList<TInstructionDefinition>;
|
||||
FilterCount: Integer);
|
||||
procedure GenerateDefinitionFiles(const OutputDirectory: String;
|
||||
Definitions: TList<TInstructionDefinition>);
|
||||
public
|
||||
procedure GenerateFiles(Editor: TInstructionEditor; const OutputDirectory: String);
|
||||
public
|
||||
property FilterCount: Integer read FFilterCount;
|
||||
property DefinitionCount: Integer read FDefinitionCount;
|
||||
property MnemonicCount: Integer read FMnemonicCount;
|
||||
property FilterSize: Cardinal read FFilterSize;
|
||||
property DefinitionSize: Cardinal read FDefinitionSize;
|
||||
property MnemonicSize: Cardinal read FMnemonicSize;
|
||||
public
|
||||
property OnWorkStart: TWorkStartEvent read FOnWorkStart write FOnWorkStart;
|
||||
property OnWork: TWorkEvent read FOnWork write FOnWork;
|
||||
property OnWorkEnd: TNotifyEvent read FOnWorkEnd write FOnWorkEnd;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Generics.Defaults, untInstructionFilters, untHelperClasses;
|
||||
|
||||
const
|
||||
FILENAME_FILTERTABLES = 'InstructionTable.inc';
|
||||
FILTERARRAY_PREFIX_NAME = 'filter';
|
||||
FILTERARRAY_PREFIX_TYPENAME = 'ZYDIS_NODETYPE_FILTER_';
|
||||
FILTERARRAY_ITEMTYPE = 'ZydisInstructionTableNode';
|
||||
FILTERARRAY_MACRO_INVALID = 'ZYDIS_INVALID';
|
||||
FILTERARRAY_MACRO_FILTER = 'ZYDIS_FILTER';
|
||||
FILTERARRAY_MACRO_DEFINITION = 'ZYDIS_DEFINITION';
|
||||
FILTERARRAY_ITEM_SIZE = 3;
|
||||
|
||||
{ TTableGenerator }
|
||||
|
||||
procedure TTableGenerator.EditorFilterCreated(Sender: TObject; Filter: TInstructionFilter);
|
||||
var
|
||||
List: TList<TInstructionFilter>;
|
||||
begin
|
||||
if (Filter.IsDefinitionContainer) or (Filter is TEncodingFilter) then Exit;
|
||||
if (FFilterMap.ContainsKey(TInstructionFilterClass(Filter.ClassType))) then
|
||||
begin
|
||||
List := FFilterMap[TInstructionFilterClass(Filter.ClassType)];
|
||||
end else
|
||||
begin
|
||||
List := TList<TInstructionFilter>.Create;
|
||||
FFilterMap.Add(TInstructionFilterClass(Filter.ClassType), List);
|
||||
end;
|
||||
Filter.Data := Pointer(List.Count);
|
||||
List.Add(Filter);
|
||||
Inc(FFilterCount);
|
||||
if (Filter.NeutralElementType in [netNotAvailable, netValue]) then
|
||||
begin
|
||||
Inc(FFilterSize, Filter.GetCapacity * FILTERARRAY_ITEM_SIZE);
|
||||
end else
|
||||
begin
|
||||
Inc(FFilterSize, (Filter.GetCapacity - 1) * FILTERARRAY_ITEM_SIZE);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.FinalizeFilterTables(Editor: TInstructionEditor);
|
||||
begin
|
||||
// Get rid of all encoding-filters as they are only needed in the editor
|
||||
// Move LES instruction into the first field of the 3-byte vex-filter
|
||||
Assert(not Assigned(Editor.RootTable.Items[$C4].Items[$03].Items[$00]));
|
||||
Editor.RootTable.Items[$C4].Items[$03].SetItem($00, Editor.RootTable.Items[$C4].Items[$00]);
|
||||
// Move LDS instruction into the first field of the 2-byte vex-filter
|
||||
Assert(not Assigned(Editor.RootTable.Items[$C5].Items[$03].Items[$00]));
|
||||
Editor.RootTable.Items[$C5].Items[$03].SetItem($00, Editor.RootTable.Items[$C5].Items[$00]);
|
||||
// Move BOUND instruction into the first field of the evex-filter
|
||||
Assert(not Assigned(Editor.RootTable.Items[$62].Items[$04].Items[$00]));
|
||||
Editor.RootTable.Items[$62].Items[$04].SetItem($00, Editor.RootTable.Items[$62].Items[$00]);
|
||||
// Move POP instruction into the first field of the xop-filter
|
||||
Assert(not Assigned(Editor.RootTable.Items[$8F].Items[$02].Items[$00]));
|
||||
Editor.RootTable.Items[$8F].Items[$02].SetItem($00, Editor.RootTable.Items[$8F].Items[$00]);
|
||||
// Remove the encoding-filter for 3DNow instructions
|
||||
Editor.RootTable.Items[$0F].SetItem($0F, Editor.RootTable.Items[$0F].Items[$0F].Items[$01]);
|
||||
// Remove the encoding-filter for 3-byte VEX instructions
|
||||
Editor.RootTable.SetItem($C4, Editor.RootTable.Items[$C4].Items[$03]);
|
||||
// Remove the encoding-filter for 2-byte VEX instructions
|
||||
Editor.RootTable.SetItem($C5, Editor.RootTable.Items[$C5].Items[$03]);
|
||||
// Remove the encoding-filter for EVEX instructions
|
||||
Editor.RootTable.SetItem($62, Editor.RootTable.Items[$62].Items[$04]);
|
||||
// Remove the encoding-filter for XOP instructions
|
||||
Editor.RootTable.SetItem($8F, Editor.RootTable.Items[$8f].Items[$02]);
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.GenerateDefinitionFiles(const OutputDirectory: String;
|
||||
Definitions: TList<TInstructionDefinition>);
|
||||
begin
|
||||
WorkStart(woGeneratingDefinitionFiles, 0, Definitions.Count);
|
||||
|
||||
WorkEnd;
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.GenerateFiles(Editor: TInstructionEditor; const OutputDirectory: String);
|
||||
var
|
||||
E: TInstructionEditor;
|
||||
D: TInstructionDefinition;
|
||||
I: Integer;
|
||||
Definitions: TList<TInstructionDefinition>;
|
||||
Comparison: TComparison<TInstructionDefinition>;
|
||||
begin
|
||||
if (not Assigned(Editor.RootTable)) then
|
||||
begin
|
||||
raise Exception.Create('The instruction editor does not contain tables.');
|
||||
end;
|
||||
if (Editor.RootTable.HasConflicts) then
|
||||
begin
|
||||
//raise Exception.Create('The instruction editor has unresolved conflicts.');
|
||||
end;
|
||||
FDefinitionCount := Editor.DefinitionCount;
|
||||
E := TInstructionEditor.Create;
|
||||
try
|
||||
E.OnFilterCreated := EditorFilterCreated;
|
||||
E.BeginUpdate;
|
||||
try
|
||||
FFilterMap := TObjectDictionary<TInstructionFilterClass,
|
||||
TList<TInstructionFilter>>.Create([doOwnsValues]);
|
||||
try
|
||||
E.Reset;
|
||||
// Create filter indizes by copying all definitions to the internal editor instance
|
||||
WorkStart(woIndexingFilters, 0, Editor.DefinitionCount);
|
||||
for I := 0 to Editor.DefinitionCount - 1 do
|
||||
begin
|
||||
D := E.CreateDefinition('unnamed');
|
||||
D.Assign(Editor.Definitions[I]);
|
||||
Work(I + 1);
|
||||
end;
|
||||
WorkEnd;
|
||||
FinalizeFilterTables(E);
|
||||
Definitions := TList<TInstructionDefinition>.Create;
|
||||
try
|
||||
// Create definition indizes and a sorted definition-list
|
||||
WorkStart(woIndexingDefinitions, 0, E.DefinitionCount * 2);
|
||||
for I := 0 to E.DefinitionCount - 1 do
|
||||
begin
|
||||
Definitions.Add(E.Definitions[I]);
|
||||
Work(I + 1);
|
||||
end;
|
||||
Comparison :=
|
||||
function(const Left, Right: TInstructionDefinition): Integer
|
||||
begin
|
||||
Result := CompareStr(Left.Mnemonic, Right.Mnemonic);
|
||||
end;
|
||||
Definitions.Sort(TComparer<TInstructionDefinition>.Construct(Comparison));
|
||||
for I := 0 to Definitions.Count - 1 do
|
||||
begin
|
||||
Definitions[I].Data := Pointer(I);
|
||||
Work(E.DefinitionCount + I + 1);
|
||||
end;
|
||||
WorkEnd;
|
||||
// Generate files
|
||||
GenerateFilterFiles(OutputDirectory, FFilterMap, Definitions, E.FilterCount);
|
||||
GenerateDefinitionFiles(OutputDirectory, Definitions);
|
||||
finally
|
||||
Definitions.Free;
|
||||
end;
|
||||
finally
|
||||
FFilterMap.Free;
|
||||
end;
|
||||
finally
|
||||
E.EndUpdate;
|
||||
end;
|
||||
finally
|
||||
E.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.GenerateFilterFiles(const OutputDirectory: String;
|
||||
FilterMap: TInstructionFilterMap; Definitions: TList<TInstructionDefinition>;
|
||||
FilterCount: Integer);
|
||||
var
|
||||
WorkCount, IndexShift: Integer;
|
||||
Buffer: TStringBuffer;
|
||||
StringList: TStringList;
|
||||
I, J, K: Integer;
|
||||
FilterList: TList<TInstructionFilter>;
|
||||
begin
|
||||
Buffer := TStringBuffer.Create;
|
||||
try
|
||||
WorkCount := 0;
|
||||
WorkStart(woGeneratingFilterFiles, 0, FilterCount);
|
||||
for I := Low(InstructionFilterClasses) to High(InstructionFilterClasses) do
|
||||
begin
|
||||
IndexShift := 1;
|
||||
if (InstructionFilterClasses[I].GetNeutralElementType in [netNotAvailable, netValue]) then
|
||||
begin
|
||||
IndexShift := 0;
|
||||
end;
|
||||
Buffer.AppendLn(Format('const %s %s%s[][%d] = ', [
|
||||
FILTERARRAY_ITEMTYPE,
|
||||
FILTERARRAY_PREFIX_NAME, GetNameForTable(InstructionFilterClasses[I]),
|
||||
Integer(InstructionFilterClasses[I].GetCapacity) - IndexShift]));
|
||||
Buffer.AppendLn('{');
|
||||
if (FilterMap.ContainsKey(InstructionFilterClasses[I])) then
|
||||
begin
|
||||
FilterList := FilterMap[InstructionFilterClasses[I]];
|
||||
for J := 0 to FilterList.Count - 1 do
|
||||
begin
|
||||
Buffer.AppendLn(' {');
|
||||
for K := IndexShift to FilterList[J].Capacity - 1 do
|
||||
begin
|
||||
Buffer.Append(Format(' /*%.4x*/ ', [K]));
|
||||
if (not Assigned(FilterList[J].Items[K])) then
|
||||
begin
|
||||
Buffer.Append(FILTERARRAY_MACRO_INVALID);
|
||||
end else if (FilterList[J].Items[K] is TDefinitionContainer) then
|
||||
begin
|
||||
Assert((FilterList[J].Items[K] as TDefinitionContainer).DefinitionCount > 0);
|
||||
Buffer.Append(Format('%s(0x%.4x)', [FILTERARRAY_MACRO_DEFINITION,
|
||||
Integer((FilterList[J].Items[K] as TDefinitionContainer).Definitions[0].Data)]));
|
||||
end else
|
||||
begin
|
||||
Buffer.Append(Format('%s(%s%s, 0x%.4x)', [FILTERARRAY_MACRO_FILTER,
|
||||
FILTERARRAY_PREFIX_TYPENAME,
|
||||
GetNameForType(TInstructionFilterClass(FilterList[J].Items[K].ClassType)),
|
||||
Integer(FilterList[J].Items[K].Data)]));
|
||||
end;
|
||||
if (K < Integer(FilterList[J].Capacity - 1)) then
|
||||
begin
|
||||
Buffer.AppendLn(',');
|
||||
end else
|
||||
begin
|
||||
Buffer.AppendLn('');
|
||||
end;
|
||||
end;
|
||||
Buffer.Append(' }');
|
||||
if (J < FilterList.Count - 1) then
|
||||
begin
|
||||
Buffer.AppendLn(',');
|
||||
end else
|
||||
begin
|
||||
Buffer.AppendLn('');
|
||||
end;
|
||||
Inc(WorkCount);
|
||||
Work(WorkCount);
|
||||
end;
|
||||
end;
|
||||
Buffer.AppendLn('};');
|
||||
if (I < High(InstructionFilterClasses)) then
|
||||
begin
|
||||
Buffer.AppendLn('');
|
||||
end;
|
||||
end;
|
||||
WorkEnd;
|
||||
StringList := TStringList.Create;
|
||||
try
|
||||
StringList.Text := Buffer.Value;
|
||||
StringList.SaveToFile(IncludeTrailingPathDelimiter(OutputDirectory) + FILENAME_FILTERTABLES);
|
||||
finally
|
||||
StringList.Free;
|
||||
end;
|
||||
finally
|
||||
Buffer.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TTableGenerator.GetNameForTable(FilterClass: TInstructionFilterClass): String;
|
||||
begin
|
||||
Result := FilterClass.GetDescription;
|
||||
end;
|
||||
|
||||
function TTableGenerator.GetNameForType(FilterClass: TInstructionFilterClass): String;
|
||||
begin
|
||||
Result := AnsiUpperCase(FilterClass.GetDescription);
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.Work(WorkCount: Integer);
|
||||
begin
|
||||
if (Assigned(FOnWork)) then
|
||||
begin
|
||||
FOnWork(Self, WorkCount);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.WorkEnd;
|
||||
begin
|
||||
if (Assigned(FOnWorkEnd)) then
|
||||
begin
|
||||
FOnWorkEnd(Self);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTableGenerator.WorkStart(Operation: TWorkOperation; MinWorkCount, MaxWorkCount: Integer);
|
||||
begin
|
||||
if (Assigned(FOnWorkStart)) then
|
||||
begin
|
||||
FOnWorkStart(Self, Operation, MinWorkCount, MaxWorkCount);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
203710
assets/instructions.json
203710
assets/instructions.json
File diff suppressed because it is too large
Load Diff
|
@ -27,6 +27,7 @@
|
|||
#ifndef ZYDIS_DEFINES_H
|
||||
#define ZYDIS_DEFINES_H
|
||||
|
||||
#include <assert.h>
|
||||
#include <ZydisExportConfig.h>
|
||||
|
||||
/* ============================================================================================== */
|
||||
|
|
|
@ -384,6 +384,8 @@ enum ZydisOperandEncodings
|
|||
ZYDIS_OPERAND_ENCODING_OPCODE,
|
||||
ZYDIS_OPERAND_ENCODING_VVVV,
|
||||
ZYDIS_OPERAND_ENCODING_AAA,
|
||||
ZYDIS_OPERAND_ENCODING_IMM8_LO,
|
||||
ZYDIS_OPERAND_ENCODING_IMM8_HI,
|
||||
ZYDIS_OPERAND_ENCODING_IMM8,
|
||||
ZYDIS_OPERAND_ENCODING_IMM16,
|
||||
ZYDIS_OPERAND_ENCODING_IMM32,
|
||||
|
@ -908,6 +910,9 @@ typedef struct ZydisInstructionInfo_
|
|||
*/
|
||||
struct
|
||||
{
|
||||
// TODO: Move from this struct to the decoder instance
|
||||
bool imm8initialized;
|
||||
uint8_t imm8;
|
||||
uint8_t w;
|
||||
uint8_t r;
|
||||
uint8_t x;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -28,7 +28,6 @@
|
|||
#define ZYDIS_INSTRUCTIONTABLE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
#include <Zydis/Defines.h>
|
||||
#include <Zydis/Mnemonic.h>
|
||||
#include <Zydis/InstructionInfo.h>
|
||||
|
@ -45,6 +44,13 @@ extern "C" {
|
|||
/* Instruction table */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Defines the @c ZydisInstructionTableNode datatype.
|
||||
*/
|
||||
typedef void* ZydisInstructionTableNode;
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Defines the @c ZydisInstructionTableNodeType datatype.
|
||||
*/
|
||||
|
@ -57,88 +63,94 @@ enum ZydisInstructionTableNodeTypes
|
|||
{
|
||||
ZYDIS_NODETYPE_INVALID = 0x00,
|
||||
/**
|
||||
* @brief Reference to a concrete instruction definition.
|
||||
* @brief Reference to an instruction-definition with 0 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION = 0x01,
|
||||
ZYDIS_NODETYPE_DEFINITION_0OP = 0x01,
|
||||
/**
|
||||
* @brief Reference to an instruction-definition with 1 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION_1OP = 0x02,
|
||||
/**
|
||||
* @brief Reference to an instruction-definition with 2 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION_2OP = 0x03,
|
||||
/**
|
||||
* @brief Reference to an instruction-definition with 3 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION_3OP = 0x04,
|
||||
/**
|
||||
* @brief Reference to an instruction-definition with 4 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION_4OP = 0x05,
|
||||
/**
|
||||
* @brief Reference to an instruction-definition with 5 operands.
|
||||
*/
|
||||
ZYDIS_NODETYPE_DEFINITION_5OP = 0x06,
|
||||
/**
|
||||
* @brief Reference to an opcode filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_OPCODE = 0x02,
|
||||
ZYDIS_NODETYPE_FILTER_OPCODE = 0x07,
|
||||
/**
|
||||
* @brief Reference to an vex-map filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_VEX = 0x03,
|
||||
ZYDIS_NODETYPE_FILTER_VEX = 0x08,
|
||||
/**
|
||||
* @brief Reference to an xop-map filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_XOP = 0x04,
|
||||
ZYDIS_NODETYPE_FILTER_XOP = 0x09,
|
||||
/**
|
||||
* @brief Reference to an instruction-mode filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MODE = 0x05,
|
||||
ZYDIS_NODETYPE_FILTER_MODE = 0x0A,
|
||||
/**
|
||||
* @brief Reference to a mandatory-prefix filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MANDATORYPREFIX = 0x06,
|
||||
ZYDIS_NODETYPE_FILTER_MANDATORYPREFIX = 0x0B,
|
||||
/**
|
||||
* @brief Reference to a modrm.mod filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MODRMMOD = 0x07,
|
||||
ZYDIS_NODETYPE_FILTER_MODRMMOD = 0x0C,
|
||||
/**
|
||||
* @brief Reference to a modrm.reg filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MODRMREG = 0x08,
|
||||
ZYDIS_NODETYPE_FILTER_MODRMREG = 0x0D,
|
||||
/**
|
||||
* @brief Reference to a modrm.rm filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_MODRMRM = 0x09,
|
||||
ZYDIS_NODETYPE_FILTER_MODRMRM = 0x0E,
|
||||
/**
|
||||
* @brief Reference to an operand-size filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_OPERANDSIZE = 0x0A,
|
||||
ZYDIS_NODETYPE_FILTER_OPERANDSIZE = 0x0F,
|
||||
/**
|
||||
* @brief Reference to an address-size filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_ADDRESSSIZE = 0x0B,
|
||||
ZYDIS_NODETYPE_FILTER_ADDRESSSIZE = 0x10,
|
||||
/**
|
||||
* @brief Reference to an rex/vex/evex.w filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_REXW = 0x0C,
|
||||
ZYDIS_NODETYPE_FILTER_REXW = 0x11,
|
||||
/**
|
||||
* @brief Reference to an vex/evex.l filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_VEXL = 0x0D,
|
||||
ZYDIS_NODETYPE_FILTER_VEXL = 0x12,
|
||||
/**
|
||||
* @brief Reference to an evex.l' filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_EVEXL2 = 0x0E,
|
||||
ZYDIS_NODETYPE_FILTER_EVEXL2 = 0x13,
|
||||
/**
|
||||
* @brief Reference to an evex.b filter.
|
||||
*/
|
||||
ZYDIS_NODETYPE_FILTER_EVEXB = 0x0F
|
||||
ZYDIS_NODETYPE_FILTER_EVEXB = 0x14
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
#pragma pack (push, 1)
|
||||
/**
|
||||
* @brief Defines the @c ZydisInstructionTableNode struct.
|
||||
* @brief Defines the @c ZydisInstructionTableNodeValue datatype.
|
||||
*/
|
||||
typedef struct ZydisInstructionTableNode_
|
||||
{
|
||||
/**
|
||||
* @brief The instruction table node type.
|
||||
*/
|
||||
ZydisInstructionTableNodeType type;
|
||||
/**
|
||||
* @brief The instruction table node value.
|
||||
*/
|
||||
uint16_t value;
|
||||
} ZydisInstructionTableNode;
|
||||
#pragma pack (pop)
|
||||
typedef uint16_t ZydisInstructionTableNodeValue;
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Instruction definition */
|
||||
/* Operand definition */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
|
@ -233,6 +245,27 @@ enum ZydisSemanticOperandTypes
|
|||
ZYDIS_SEM_OPERAND_TYPE_ST0
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Defines the @c ZydisOperandDefinition struct.
|
||||
*/
|
||||
typedef struct ZydisOperandDefinition_
|
||||
{
|
||||
/**
|
||||
* @brief The semantic operand type.
|
||||
*/
|
||||
ZydisSemanticOperandType type;
|
||||
/**
|
||||
* @brief The operand encoding.
|
||||
*/
|
||||
ZydisOperandEncoding encoding;
|
||||
/**
|
||||
* @brief The operand access-mode.
|
||||
*/
|
||||
ZydisOperandAccess access;
|
||||
} ZydisOperandDefinition;
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Instruction definition */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
|
@ -251,25 +284,8 @@ enum ZydisEvexBFunctionalities
|
|||
ZYDIS_EVEXB_FUNCTIONALITY_SAE
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Defines the zydis operand definition datatype.
|
||||
*/
|
||||
typedef uint16_t ZydisOperandDefinition;
|
||||
|
||||
#pragma pack (push, 1)
|
||||
|
||||
/**
|
||||
* @brief Defines the zydis operands definition datatype.
|
||||
*/
|
||||
typedef struct ZydisInstructionOperands_
|
||||
{
|
||||
ZydisOperandDefinition operands[4];
|
||||
} ZydisInstructionOperands;
|
||||
|
||||
/**
|
||||
* @brief Defines the zydis instruction definition struct.
|
||||
* @brief Defines the @c ZydisInstructionDefinition struct.
|
||||
*/
|
||||
typedef struct ZydisInstructionDefinition_
|
||||
{
|
||||
|
@ -278,160 +294,24 @@ typedef struct ZydisInstructionDefinition_
|
|||
*/
|
||||
ZydisInstructionMnemonic mnemonic;
|
||||
/**
|
||||
* @brief The instruction operand.
|
||||
* @brief The number of used operands.
|
||||
*/
|
||||
uint16_t operands;
|
||||
//ZydisOperandDefinition operands[4];
|
||||
uint8_t operandCount;
|
||||
/**
|
||||
* @brief The operand-definitions.
|
||||
*/
|
||||
ZydisOperandDefinition operands[5];
|
||||
/**
|
||||
* @brief The evex.b functionality.
|
||||
*/
|
||||
ZydisEvexBFunctionality evexBFunctionality;
|
||||
|
||||
bool hasEvexAAA;
|
||||
bool hasEvexZ;
|
||||
} ZydisInstructionDefinition;
|
||||
#pragma pack (pop)
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/* ============================================================================================== */
|
||||
/* Data tables */
|
||||
/* ============================================================================================== */
|
||||
|
||||
/**
|
||||
* @brief Contains all opcode filters.
|
||||
*
|
||||
* Indexed by the numeric value of the opcode.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterOpcode[][256];
|
||||
|
||||
/**
|
||||
* @brief Contains all vex-map filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = LES, LDS or BOUND instruction (default encoding)
|
||||
* 1 = 0F
|
||||
* 2 = 0F38
|
||||
* 3 = 0F3A
|
||||
* 4 = 66
|
||||
* 5 = 66_0F
|
||||
* 6 = 66_0F38
|
||||
* 7 = 66_0F3A
|
||||
* 8 = F3
|
||||
* 9 = F3_0F
|
||||
* A = F3_0F38
|
||||
* B = F3_0F3A
|
||||
* C = F2
|
||||
* D = F2_0F
|
||||
* E = F2_0F38
|
||||
* F = F2_0F3A
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterVEX[][16];
|
||||
|
||||
/**
|
||||
* @brief Contains all xop-map filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = POP instruction (default encoding)
|
||||
* 1 = xop8
|
||||
* 2 = xop9
|
||||
* 3 = xopA
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterXOP[][4];
|
||||
|
||||
/**
|
||||
* @brief Contains all instruction-mode filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 64 bit mode required
|
||||
* 1 = 64 bit mode excluded
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterMode[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all mandatory-prefix switch tables.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = none
|
||||
* 1 = 66
|
||||
* 2 = F3
|
||||
* 3 = F2
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterMandatoryPrefix[][4];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.mod filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = [modrm_mod == !11] = memory
|
||||
* 1 = [modrm_mod == 11] = register
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterModrmMod[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.reg filters.
|
||||
*
|
||||
* Indexed by the numeric value of the modrm_reg field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterModrmReg[][8];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.rm filters.
|
||||
*
|
||||
* Indexed by the numeric value of the modrm_rm field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterModrmRm[][8];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-size filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 16bit = 0x66 prefix in 32 bit mode
|
||||
* 1 = 32bit = 0x66 prefix in 16 bit mode
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterOperandSize[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all address-size filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 16
|
||||
* 1 = 32
|
||||
* 2 = 64
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterAddressSize[][3];
|
||||
|
||||
/**
|
||||
* @brief Contains all rex/vex/evex.w filters.
|
||||
*
|
||||
* Indexed by the numeric value of the rex/vex/evex.w field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterREXW[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all vex.l filters.
|
||||
*
|
||||
* Indexed by the numeric value of the vex/evex.l field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterVEXL[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all evex.l' filters.
|
||||
*
|
||||
* Indexed by the numeric value of the evex.l' field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterEVEXL2[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all evex.b filters.
|
||||
*
|
||||
* Indexed by the numeric value of the evex.b field.
|
||||
*/
|
||||
extern const ZydisInstructionTableNode filterEVEXB[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all instruction-definitions.
|
||||
*/
|
||||
extern const ZydisInstructionDefinition instructionDefinitions[];
|
||||
|
||||
/**
|
||||
* @brief Contains all instruction-operand-definitions.
|
||||
*/
|
||||
extern const ZydisInstructionOperands instructionOperands[];
|
||||
|
||||
/* ============================================================================================== */
|
||||
/* Functions */
|
||||
/* ============================================================================================== */
|
||||
|
@ -443,11 +323,8 @@ extern const ZydisInstructionOperands instructionOperands[];
|
|||
*
|
||||
* @return The type of the specified instruction table node.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisInstructionTableNodeType ZydisInstructionTableGetNodeType(
|
||||
ZydisInstructionTableNode node)
|
||||
{
|
||||
return node.type;
|
||||
}
|
||||
ZYDIS_NO_EXPORT ZydisInstructionTableNodeType ZydisInstructionTableGetNodeType(
|
||||
const ZydisInstructionTableNode node);
|
||||
|
||||
/**
|
||||
* @brief Returns the value of the specified instruction table node.
|
||||
|
@ -456,10 +333,8 @@ ZYDIS_INLINE ZydisInstructionTableNodeType ZydisInstructionTableGetNodeType(
|
|||
*
|
||||
* @return The value of the specified instruction table node.
|
||||
*/
|
||||
ZYDIS_INLINE uint16_t ZydisInstructionTableGetNodeValue(ZydisInstructionTableNode node)
|
||||
{
|
||||
return node.value;
|
||||
}
|
||||
ZYDIS_NO_EXPORT ZydisInstructionTableNodeValue ZydisInstructionTableGetNodeValue(
|
||||
const ZydisInstructionTableNode* node);
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
|
@ -468,11 +343,7 @@ ZYDIS_INLINE uint16_t ZydisInstructionTableGetNodeValue(ZydisInstructionTableNod
|
|||
*
|
||||
* @return The root node of the instruction table.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisInstructionTableNode ZydisInstructionTableGetRootNode()
|
||||
{
|
||||
ZydisInstructionTableNode root = { ZYDIS_NODETYPE_FILTER_OPCODE, 0x00000000 };
|
||||
return root;
|
||||
}
|
||||
ZYDIS_NO_EXPORT ZydisInstructionTableNode ZydisInstructionTableGetRootNode();
|
||||
|
||||
/**
|
||||
* @brief Returns the child node of @c parent specified by @c index.
|
||||
|
@ -482,61 +353,8 @@ ZYDIS_INLINE ZydisInstructionTableNode ZydisInstructionTableGetRootNode()
|
|||
*
|
||||
* @return The specified child node.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisInstructionTableNode ZydisInstructionTableGetChildNode(
|
||||
ZydisInstructionTableNode parent, uint16_t index)
|
||||
{
|
||||
ZydisInstructionTableNodeType nodeType = ZydisInstructionTableGetNodeType(parent);
|
||||
uint16_t tableIndex = ZydisInstructionTableGetNodeValue(parent);
|
||||
switch (nodeType)
|
||||
{
|
||||
case ZYDIS_NODETYPE_FILTER_OPCODE:
|
||||
ZYDIS_ASSERT(index < 256);
|
||||
return filterOpcode[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_VEX:
|
||||
ZYDIS_ASSERT(index < 16);
|
||||
return filterVEX[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_XOP:
|
||||
ZYDIS_ASSERT(index < 4);
|
||||
return filterXOP[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODE:
|
||||
ZYDIS_ASSERT(index < 3);
|
||||
return filterMode[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MANDATORYPREFIX:
|
||||
ZYDIS_ASSERT(index < 4);
|
||||
return filterMandatoryPrefix[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMMOD:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterModrmMod[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMREG:
|
||||
ZYDIS_ASSERT(index < 8);
|
||||
return filterModrmReg[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMRM:
|
||||
ZYDIS_ASSERT(index < 8);
|
||||
return filterModrmRm[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_OPERANDSIZE:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterOperandSize[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_ADDRESSSIZE:
|
||||
ZYDIS_ASSERT(index < 3);
|
||||
return filterAddressSize[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_REXW:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterREXW[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_VEXL:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterVEXL[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_EVEXL2:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterEVEXL2[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_EVEXB:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return filterEVEXB[tableIndex][index];
|
||||
default:
|
||||
ZYDIS_UNREACHABLE;
|
||||
}
|
||||
ZydisInstructionTableNode node = { ZYDIS_NODETYPE_INVALID, 0x00000000 };
|
||||
return node;
|
||||
}
|
||||
ZYDIS_NO_EXPORT ZydisInstructionTableNode ZydisInstructionTableGetChildNode(
|
||||
const ZydisInstructionTableNode parent, uint16_t index);
|
||||
|
||||
/**
|
||||
* @brief Returns the instruction definition that is linked to the given @c node.
|
||||
|
@ -545,85 +363,8 @@ ZYDIS_INLINE ZydisInstructionTableNode ZydisInstructionTableGetChildNode(
|
|||
*
|
||||
* @return Pointer to the instruction definition.
|
||||
*/
|
||||
ZYDIS_INLINE const ZydisInstructionDefinition* ZydisInstructionDefinitionByNode(
|
||||
ZydisInstructionTableNode node)
|
||||
{
|
||||
ZYDIS_ASSERT(ZydisInstructionTableGetNodeType(node) == ZYDIS_NODETYPE_DEFINITION);
|
||||
return &instructionDefinitions[ZydisInstructionTableGetNodeValue(node)];
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
ZYDIS_INLINE ZydisInstructionMnemonic ZydisInstructionDefinitionGetMnemonic(
|
||||
const ZydisInstructionDefinition* definition)
|
||||
{
|
||||
return (definition->mnemonic >> 4) & 0xFFF;
|
||||
}
|
||||
|
||||
ZYDIS_INLINE const ZydisInstructionOperands* ZydisInstructionDefinitionGetOperands(
|
||||
const ZydisInstructionDefinition* definition)
|
||||
{
|
||||
return &instructionOperands[definition->operands];
|
||||
}
|
||||
|
||||
ZYDIS_INLINE ZydisEvexBFunctionality ZydisInstructionDefinitionGetEvexBFunctionality(
|
||||
const ZydisInstructionDefinition* definition)
|
||||
{
|
||||
return (definition->mnemonic >> 2) & 0x03;
|
||||
}
|
||||
|
||||
ZYDIS_INLINE bool ZydisInstructionDefinitionHasEvexAAA(const ZydisInstructionDefinition* definition)
|
||||
{
|
||||
return (definition->mnemonic >> 1) & 0x01;
|
||||
}
|
||||
|
||||
ZYDIS_INLINE bool ZydisInstructionDefinitionHasEvexZ(const ZydisInstructionDefinition* definition)
|
||||
{
|
||||
return definition->mnemonic & 0x01;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Returns the defined operand-type of the specified operand-definition.
|
||||
*
|
||||
* @param definition The operand definition.
|
||||
*
|
||||
* @return The defined operand-type of the specified operand-definition.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisSemanticOperandType ZydisOperandDefinitionGetType(
|
||||
ZydisOperandDefinition definition)
|
||||
{
|
||||
return ((definition >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the operand-encoding of the specified operand-definition.
|
||||
*
|
||||
* @param definition The operand definition.
|
||||
*
|
||||
* @return The operand-encoding of the specified operand-definition.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisOperandEncoding ZydisOperandDefinitionGetEncoding(
|
||||
ZydisOperandDefinition definition)
|
||||
{
|
||||
return ((definition >> 2) & 0x3F);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the access-mode of the specified operand-definition.
|
||||
*
|
||||
* @param definition The operand definition.
|
||||
*
|
||||
* @return The access-mode of the specified operand-definition.
|
||||
*/
|
||||
ZYDIS_INLINE ZydisOperandAccess ZydisOperandDefinitionGetAccessMode(
|
||||
ZydisOperandDefinition definition)
|
||||
{
|
||||
return ((definition >> 0) & 0x03);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
ZYDIS_NO_EXPORT ZydisInstructionDefinition ZydisInstructionDefinitionByNode(
|
||||
const ZydisInstructionTableNode node);
|
||||
|
||||
/* ============================================================================================== */
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,759 @@
|
|||
const ZydisInternalOperandDefinition operandDefinitions1[][1] =
|
||||
{
|
||||
/*0000*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0001*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0002*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0003*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0004*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0005*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0006*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0007*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_PTR1616, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0008*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0009*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1616, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_PTR1632, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0010*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0011*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0012*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0013*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0014*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0015*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0016*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0017*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0018*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0019*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*001A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*001B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FPR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM80, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM224, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM112, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0020*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0021*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0022*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0023*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0024*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0025*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0026*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0027*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0028*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0029*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*002A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*002B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*002D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*002F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0030*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0031*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0032*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_ES, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0033*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0034*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0035*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0036*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0037*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0038*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0039*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0040*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0041*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0042*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0043*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*0044*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE) }
|
||||
};
|
||||
|
||||
const ZydisInternalOperandDefinition operandDefinitions2[][2] =
|
||||
{
|
||||
/*0000*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0001*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0002*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0003*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0004*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0005*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0006*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0007*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0008*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0009*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0010*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0011*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0012*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0013*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0014*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0015*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0016*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0017*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0018*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0019*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0020*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0021*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0022*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0023*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0024*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0025*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0026*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0027*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0028*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0029*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0030*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0031*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0032*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0033*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0034*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0035*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0036*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0037*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0038*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0039*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_BNDR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0040*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0041*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0042*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0043*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0044*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0045*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0046*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0047*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0048*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0049*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0050*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0051*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0052*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0053*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0054*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0055*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0056*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0057*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0058*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0059*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0060*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0061*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0062*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0063*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0064*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0065*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0066*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0067*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0068*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0069*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0070*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0071*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0072*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0073*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0074*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0075*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0076*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0077*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0078*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0079*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0080*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0081*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0082*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0083*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0084*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0085*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FPR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_ST0, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0086*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_ST0, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FPR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0087*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_ST0, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FPR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0088*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0089*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0090*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0091*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0092*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0093*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0094*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0095*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0096*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0097*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0098*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0099*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1616, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00AF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM64, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00B9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00BF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00C9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00CF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00D9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00DF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00E9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00EA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00EB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00EC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00ED*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00EE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00EF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00F9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00FF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0100*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0101*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0102*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0103*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0104*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0105*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0106*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0107*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0108*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0109*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*010A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*010B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*010C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
|
||||
/*010D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*010E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*010F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0110*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0111*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0112*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0113*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0114*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0115*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0116*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0117*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0118*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0119*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*011F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0120*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0121*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0122*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0123*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0124*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0125*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0126*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0127*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0128*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0129*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*012F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0130*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0131*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0132*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0133*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0134*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0135*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0136*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0137*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0138*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0139*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*013F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0140*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0141*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0142*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0143*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0144*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0145*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0146*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0147*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0148*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0149*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*014F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0150*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0151*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0152*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0153*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0154*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0155*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0156*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0157*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0158*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0159*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*015F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0160*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0161*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0162*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0163*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0164*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0165*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0166*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0167*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0168*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0169*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*016F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0170*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0171*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0172*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0173*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0174*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0175*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0176*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0177*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0178*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0179*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*017F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0180*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0181*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0182*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0183*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0184*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0185*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0186*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0187*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0188*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0189*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*018F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0190*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0191*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0192*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0193*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0194*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0195*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0196*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0197*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0198*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0199*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*019F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A6*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A7*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A8*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01A9*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AA*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AB*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AC*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AD*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AE*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01AF*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01B0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*01B1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*01B2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*01B3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) }
|
||||
};
|
||||
|
||||
const ZydisInternalOperandDefinition operandDefinitions3[][3] =
|
||||
{
|
||||
/*0000*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0001*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0002*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0003*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0004*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0005*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0006*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0007*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0008*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0009*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0010*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0011*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0012*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0013*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0014*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0015*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0016*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0017*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0018*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0019*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0020*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0021*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0022*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0023*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0024*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0025*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0026*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0027*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0028*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0029*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0030*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0031*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0032*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0033*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0034*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0035*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0036*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0037*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0038*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0039*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0040*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0041*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0042*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0043*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0044*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0045*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0046*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0047*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0048*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0049*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*004F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0050*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0051*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0052*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0053*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0054*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0055*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0056*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0057*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0058*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0059*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*005F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0060*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0061*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0062*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0063*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0064*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0065*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0066*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0067*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0068*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0069*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*006F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0070*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0071*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0072*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0073*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0074*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0075*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0076*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0077*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0078*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0079*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*007F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0080*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0081*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0082*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0083*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0084*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0085*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0086*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0087*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0088*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0089*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*008F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0090*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0091*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0092*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0093*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0094*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0095*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0096*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0097*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READWRITE) },
|
||||
/*0098*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0099*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*009F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A0*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A1*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A2*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A3*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A4*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*00A5*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }
|
||||
};
|
||||
|
||||
const ZydisInternalOperandDefinition operandDefinitions4[][4] =
|
||||
{
|
||||
/*0000*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0001*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0002*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0003*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0004*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0005*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0006*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0007*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0008*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0009*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*000F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0010*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0011*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0012*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0013*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0014*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0015*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0016*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0017*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0018*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0019*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*001F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0020*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0021*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0022*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0023*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0024*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0025*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0026*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0027*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0028*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0029*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002C*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002D*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002E*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*002F*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0030*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0031*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0032*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0033*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0034*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0035*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0036*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0037*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0038*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0039*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003A*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*003B*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }
|
||||
};
|
||||
|
||||
const ZydisInternalOperandDefinition operandDefinitions5[][5] =
|
||||
{
|
||||
/*0000*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0001*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0002*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0003*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0004*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0005*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0006*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) },
|
||||
/*0007*/ { ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_MAKE_OPERANDDEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ACCESS_READ) }
|
||||
};
|
||||
|
|
@ -49,7 +49,7 @@ typedef uint16_t ZydisInstructionMnemonic;
|
|||
*/
|
||||
enum ZydisInstructionMnemonics
|
||||
{
|
||||
#include <Zydis/Internal/Mnemonics.inc>
|
||||
#include <Zydis/Internal/MnemonicEnum.inc>
|
||||
};
|
||||
|
||||
/* ============================================================================================== */
|
||||
|
|
|
@ -564,14 +564,24 @@ static ZydisDecoderStatus ZydisDecodeOperandImmediate(ZydisInstructionDecoder* d
|
|||
{
|
||||
case 8:
|
||||
{
|
||||
uint8_t immediate;
|
||||
ZYDIS_CHECK(ZydisInputNext(decoder, info, &immediate));
|
||||
if (isSigned)
|
||||
// We have to store a copy of the imm8 value for instructions that encode different operands
|
||||
// in the lo and hi part of the immediate.
|
||||
if (info->details.internal.imm8initialized)
|
||||
{
|
||||
operand->imm.value.sqword = (int8_t)immediate;
|
||||
operand->imm.value.ubyte = info->details.internal.imm8;
|
||||
} else
|
||||
{
|
||||
operand->imm.value.uqword = immediate;
|
||||
uint8_t immediate;
|
||||
ZYDIS_CHECK(ZydisInputNext(decoder, info, &immediate));
|
||||
if (isSigned)
|
||||
{
|
||||
operand->imm.value.sqword = (int8_t)immediate;
|
||||
} else
|
||||
{
|
||||
operand->imm.value.uqword = immediate;
|
||||
}
|
||||
info->details.internal.imm8initialized = true;
|
||||
info->details.internal.imm8 = operand->imm.value.ubyte;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1059,7 +1069,7 @@ static ZydisDecoderStatus ZydisDecodeOperand(ZydisInstructionDecoder* decoder,
|
|||
ZYDIS_UNREACHABLE;
|
||||
}
|
||||
break;
|
||||
case ZYDIS_OPERAND_ENCODING_IMM8:
|
||||
case ZYDIS_OPERAND_ENCODING_IMM8_HI:
|
||||
ZYDIS_ASSERT((info->encoding == ZYDIS_INSTRUCTION_ENCODING_VEX) ||
|
||||
(info->encoding == ZYDIS_INSTRUCTION_ENCODING_EVEX) ||
|
||||
(info->encoding == ZYDIS_INSTRUCTION_ENCODING_XOP));
|
||||
|
@ -1308,6 +1318,11 @@ static ZydisDecoderStatus ZydisDecodeOperand(ZydisInstructionDecoder* decoder,
|
|||
case ZYDIS_SEM_OPERAND_TYPE_IMM64:
|
||||
switch (encoding)
|
||||
{
|
||||
case ZYDIS_OPERAND_ENCODING_IMM8_LO:
|
||||
ZYDIS_CHECK(
|
||||
ZydisDecodeOperandImmediate(decoder, info, operand, 8, operand->imm.isSigned));
|
||||
operand->imm.value.ubyte &= 0x0F;
|
||||
break;
|
||||
case ZYDIS_OPERAND_ENCODING_IMM8:
|
||||
return ZydisDecodeOperandImmediate(decoder, info, operand, 8, operand->imm.isSigned);
|
||||
case ZYDIS_OPERAND_ENCODING_IMM16:
|
||||
|
@ -1474,20 +1489,19 @@ static ZydisDecoderStatus ZydisDecodeOperands(ZydisInstructionDecoder* decoder,
|
|||
ZYDIS_ASSERT(info);
|
||||
ZYDIS_ASSERT(definition);
|
||||
|
||||
const ZydisInstructionOperands* operands = ZydisInstructionDefinitionGetOperands(definition);
|
||||
for (int i = 0; i < 4; ++i)
|
||||
for (int i = 0; i < definition->operandCount; ++i)
|
||||
{
|
||||
ZydisSemanticOperandType type = ZydisOperandDefinitionGetType(operands->operands[i]);
|
||||
ZydisSemanticOperandType type = definition->operands[i].type;
|
||||
if (type == ZYDIS_SEM_OPERAND_TYPE_UNUSED)
|
||||
{
|
||||
break;
|
||||
}
|
||||
++info->operandCount;
|
||||
ZydisInstructionEncoding encoding = ZydisOperandDefinitionGetEncoding(operands->operands[i]);
|
||||
ZydisInstructionEncoding encoding = definition->operands[i].encoding;
|
||||
ZydisDecoderStatus status =
|
||||
ZydisDecodeOperand(decoder, info, &info->operand[i], type, encoding);
|
||||
info->operand[i].encoding = encoding;
|
||||
info->operand[i].access = ZydisOperandDefinitionGetAccessMode(operands->operands[i]);
|
||||
info->operand[i].access = definition->operands[i].access;
|
||||
if (status != ZYDIS_STATUS_DECODER_SUCCESS)
|
||||
{
|
||||
info->flags |= ZYDIS_IFLAG_ERROR_OPERANDS;
|
||||
|
@ -2178,11 +2192,16 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
|
|||
info->flags |= ZYDIS_IFLAG_ERROR_INVALID;
|
||||
return ZYDIS_STATUS_DECODER_INVALID_INSTRUCTION;
|
||||
}
|
||||
case ZYDIS_NODETYPE_DEFINITION:
|
||||
case ZYDIS_NODETYPE_DEFINITION_0OP:
|
||||
case ZYDIS_NODETYPE_DEFINITION_1OP:
|
||||
case ZYDIS_NODETYPE_DEFINITION_2OP:
|
||||
case ZYDIS_NODETYPE_DEFINITION_3OP:
|
||||
case ZYDIS_NODETYPE_DEFINITION_4OP:
|
||||
case ZYDIS_NODETYPE_DEFINITION_5OP:
|
||||
{
|
||||
const ZydisInstructionDefinition* definition = ZydisInstructionDefinitionByNode(node);
|
||||
ZYDIS_ASSERT(definition);
|
||||
info->mnemonic = ZydisInstructionDefinitionGetMnemonic(definition);
|
||||
const ZydisInstructionDefinition definition = ZydisInstructionDefinitionByNode(node);
|
||||
//ZYDIS_ASSERT(definition); // TODO: Pointer?
|
||||
info->mnemonic = definition.mnemonic;
|
||||
|
||||
// TODO: Check for (un)accepted prefixes
|
||||
|
||||
|
@ -2219,7 +2238,7 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
|
|||
// Save input-buffer state and decode dummy operands
|
||||
uint8_t bufferPosRead = decoder->buffer.posRead;
|
||||
uint8_t length = info->length;
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, definition));
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, &definition)); // TODO: Reference?
|
||||
// Read actual 3dnow opcode
|
||||
ZYDIS_CHECK(ZydisInputNext(decoder, info, &info->opcode));
|
||||
// Restore input-buffer state
|
||||
|
@ -2245,35 +2264,31 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
|
|||
node = ZydisInstructionTableGetChildNode(node,
|
||||
(info->details.modrm.mod == 0x3) ? 1 : 0);
|
||||
// Decode actual operands and fix the instruction-info
|
||||
definition = ZydisInstructionDefinitionByNode(node);
|
||||
ZYDIS_ASSERT(definition);
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, definition));
|
||||
info->mnemonic = ZydisInstructionDefinitionGetMnemonic(definition);
|
||||
ZydisInstructionDefinition definition2 = ZydisInstructionDefinitionByNode(node);
|
||||
//ZYDIS_ASSERT(definition); // TODO: Pointer
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, &definition2)); // TODO: Reference
|
||||
info->mnemonic = definition2.mnemonic;
|
||||
ZydisFinalizeInstructionInfo(info);
|
||||
return ZydisInputNext(decoder, info, &info->opcode);
|
||||
}
|
||||
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, definition));
|
||||
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, &definition)); // TODO: Reference
|
||||
ZydisFinalizeInstructionInfo(info);
|
||||
|
||||
if (info->encoding == ZYDIS_INSTRUCTION_ENCODING_EVEX)
|
||||
{
|
||||
if (ZydisInstructionDefinitionHasEvexAAA(definition))
|
||||
if (definition.hasEvexAAA && info->details.evex.aaa)
|
||||
{
|
||||
if (!info->details.evex.aaa)
|
||||
{
|
||||
// TODO: Fatal error?
|
||||
}
|
||||
info->avx.maskRegister = ZYDIS_REGISTER_K0 + info->details.evex.aaa;
|
||||
}
|
||||
if (ZydisInstructionDefinitionHasEvexZ(definition) && info->details.evex.z)
|
||||
if (definition.hasEvexZ && info->details.evex.z)
|
||||
{
|
||||
info->avx.maskMode = ZYDIS_AVX_MASKMODE_ZERO;
|
||||
} else
|
||||
{
|
||||
info->avx.maskMode = ZYDIS_AVX_MASKMODE_MERGE;
|
||||
}
|
||||
switch (ZydisInstructionDefinitionGetEvexBFunctionality(definition))
|
||||
switch (definition.evexBFunctionality)
|
||||
{
|
||||
case ZYDIS_EVEXB_FUNCTIONALITY_BC:
|
||||
break;
|
||||
|
@ -2286,7 +2301,6 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
|
|||
info->avx.broadcast = ZYDIS_AVX_BCSTMODE_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
return ZYDIS_STATUS_DECODER_SUCCESS;
|
||||
}
|
||||
case ZYDIS_NODETYPE_FILTER_OPCODE:
|
||||
|
@ -2336,7 +2350,13 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
|
|||
}
|
||||
ZYDIS_CHECK(status);
|
||||
node = ZydisInstructionTableGetChildNode(node, index);
|
||||
} while((nodeType != ZYDIS_NODETYPE_INVALID) && (nodeType != ZYDIS_NODETYPE_DEFINITION));
|
||||
} while((nodeType != ZYDIS_NODETYPE_INVALID) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_0OP) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_1OP) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_2OP) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_3OP) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_4OP) &&
|
||||
(nodeType != ZYDIS_NODETYPE_DEFINITION_5OP));
|
||||
return ZYDIS_STATUS_DECODER_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -470,7 +470,7 @@ static ZydisStatus ZydisFormatterFormatInstructionIntel(ZydisInstructionFormatte
|
|||
(formatter->flags & ZYDIS_FORMATTER_FLAG_UPPERCASE), mnemonic));
|
||||
|
||||
uint16_t typecast = 0;
|
||||
for (int i = 0; i < 4; ++i)
|
||||
for (int i = 0; i < 5; ++i)
|
||||
{
|
||||
if (info->operand[i].type == ZYDIS_OPERAND_TYPE_UNUSED)
|
||||
{
|
||||
|
|
|
@ -24,31 +24,428 @@
|
|||
|
||||
***************************************************************************************************/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <Zydis/Internal/InstructionTable.h>
|
||||
|
||||
#define ZYDIS_INVALID { ZYDIS_NODETYPE_INVALID, 0x00000000 }
|
||||
#define ZYDIS_FILTER(type, id) { type, id }
|
||||
#define ZYDIS_DEFINITION(id) { ZYDIS_NODETYPE_DEFINITION, id }
|
||||
/* ============================================================================================== */
|
||||
/* Data tables */
|
||||
/* ============================================================================================== */
|
||||
|
||||
#include <Zydis/Internal/InstructionTable.inc>
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Generated types & Macros */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
// TODO: Auto generate these structs and macros
|
||||
|
||||
typedef struct ZydisInternalInstructionTableNode_
|
||||
{
|
||||
ZydisInstructionTableNodeType type;
|
||||
ZydisInstructionTableNodeValue value;
|
||||
} ZydisInternalInstructionTableNode;
|
||||
|
||||
#define ZYDIS_MAKE_INSTRUCTIONTABLENODE(type, value) \
|
||||
{ type, value }
|
||||
#define ZYDIS_GET_INSTRUCTIONTABLENODE_TYPE(node) \
|
||||
node.type
|
||||
#define ZYDIS_GET_INSTRUCTIONTABLENODE_VALUE(node) \
|
||||
node.value
|
||||
|
||||
typedef struct ZydisInternalOperandDefinition_
|
||||
{
|
||||
unsigned int type : 8;
|
||||
unsigned int encoding : 8;
|
||||
unsigned int access : 2;
|
||||
} ZydisInternalOperandDefinition;
|
||||
|
||||
#define ZYDIS_MAKE_OPERANDDEFINITION(type, encoding, access) \
|
||||
{ type, encoding, access }
|
||||
#define ZYDIS_GET_OPERANDDEFINITION_TYPE(def) \
|
||||
(ZydisSemanticOperandType)def.type
|
||||
#define ZYDIS_GET_OPERANDDEFINITION_ENCODING(def) \
|
||||
(ZydisOperandEncoding)def.encoding
|
||||
#define ZYDIS_GET_OPERANDDEFINITION_ACCESS(def) \
|
||||
(ZydisOperandAccess)def.access
|
||||
|
||||
typedef struct ZydisInternalInstructionDefinition_
|
||||
{
|
||||
unsigned int mnemonic : 11;
|
||||
unsigned int operandRef : 9;
|
||||
unsigned int evexBFunctionality : 2;
|
||||
unsigned int hasEvexAAA : 1;
|
||||
unsigned int hasEvexZ : 1;
|
||||
} ZydisInternalInstructionDefinition;
|
||||
|
||||
#define ZYDIS_MAKE_INSTRUCTIONDEFINITION(mnemonic, operandRef, evexBFunctionality, hasEvexAAA, hasEvexZ) \
|
||||
{ mnemonic, operandRef, evexBFunctionality, hasEvexAAA, hasEvexZ }
|
||||
#define ZYDIS_GET_INSTRUCTIONDEFINITION_MNEMONIC(def) \
|
||||
(ZydisInstructionMnemonic)def.mnemonic
|
||||
#define ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF(def) \
|
||||
def.operandRef
|
||||
#define ZYDIS_GET_INSTRUCTIONDEFINITION_EVEXBFUNCTIONALITY(def) \
|
||||
(ZydisEvexBFunctionality)def.evexBFunctionality
|
||||
#define ZYDIS_GET_INSTRUCTIONDEFINITION_HASEVEXAAA(def) \
|
||||
def.hasEvexAAA
|
||||
#define ZYDIS_GET_INSTRUCTIONDEFINITION_HASEVEXZ(def) \
|
||||
def.hasEvexZ
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Forward declarations */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Contains all opcode filters.
|
||||
*
|
||||
* Indexed by the numeric value of the opcode.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterOpcode[][256];
|
||||
|
||||
/**
|
||||
* @brief Contains all vex-map filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = LES, LDS or BOUND instruction (default encoding)
|
||||
* 1 = 0F
|
||||
* 2 = 0F38
|
||||
* 3 = 0F3A
|
||||
* 4 = 66
|
||||
* 5 = 66_0F
|
||||
* 6 = 66_0F38
|
||||
* 7 = 66_0F3A
|
||||
* 8 = F3
|
||||
* 9 = F3_0F
|
||||
* A = F3_0F38
|
||||
* B = F3_0F3A
|
||||
* C = F2
|
||||
* D = F2_0F
|
||||
* E = F2_0F38
|
||||
* F = F2_0F3A
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterVEX[][16];
|
||||
|
||||
/**
|
||||
* @brief Contains all xop-map filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = POP instruction (default encoding)
|
||||
* 1 = xop8
|
||||
* 2 = xop9
|
||||
* 3 = xopA
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterXOP[][4];
|
||||
|
||||
/**
|
||||
* @brief Contains all instruction-mode filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 64 bit mode required
|
||||
* 1 = 64 bit mode excluded
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterMode[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all mandatory-prefix switch tables.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = none
|
||||
* 1 = 66
|
||||
* 2 = F3
|
||||
* 3 = F2
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterMandatoryPrefix[][4];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.mod filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = [modrm_mod == !11] = memory
|
||||
* 1 = [modrm_mod == 11] = register
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterModrmMod[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.reg filters.
|
||||
*
|
||||
* Indexed by the numeric value of the modrm_reg field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterModrmReg[][8];
|
||||
|
||||
/**
|
||||
* @brief Contains all modrm.rm filters.
|
||||
*
|
||||
* Indexed by the numeric value of the modrm_rm field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterModrmRm[][8];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-size filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 16bit = 0x66 prefix in 32 bit mode
|
||||
* 1 = 32bit = 0x66 prefix in 16 bit mode
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterOperandSize[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all address-size filters.
|
||||
*
|
||||
* Index values:
|
||||
* 0 = 16
|
||||
* 1 = 32
|
||||
* 2 = 64
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterAddressSize[][3];
|
||||
|
||||
/**
|
||||
* @brief Contains all rex/vex/evex.w filters.
|
||||
*
|
||||
* Indexed by the numeric value of the rex/vex/evex.w field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterREXW[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all vex.l filters.
|
||||
*
|
||||
* Indexed by the numeric value of the vex/evex.l field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterVEXL[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all evex.l' filters.
|
||||
*
|
||||
* Indexed by the numeric value of the evex.l' field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterEVEXL2[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all evex.b filters.
|
||||
*
|
||||
* Indexed by the numeric value of the evex.b field.
|
||||
*/
|
||||
extern const ZydisInternalInstructionTableNode filterEVEXB[][2];
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-definitions with 1 operand.
|
||||
*/
|
||||
extern const ZydisInternalOperandDefinition operandDefinitions1[][1];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-definitions with 2 operands.
|
||||
*/
|
||||
extern const ZydisInternalOperandDefinition operandDefinitions2[][2];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-definitions with 3 operands.
|
||||
*/
|
||||
extern const ZydisInternalOperandDefinition operandDefinitions3[][3];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-definitions with 4 operands.
|
||||
*/
|
||||
extern const ZydisInternalOperandDefinition operandDefinitions4[][4];
|
||||
|
||||
/**
|
||||
* @brief Contains all operand-definitions with 5 operands.
|
||||
*/
|
||||
extern const ZydisInternalOperandDefinition operandDefinitions5[][5];
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* @brief Contains all instruction-definitions.
|
||||
*/
|
||||
extern const ZydisInternalInstructionDefinition instructionDefinitions[];
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Functions */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
ZydisInstructionTableNodeType ZydisInstructionTableGetNodeType(
|
||||
const ZydisInstructionTableNode node)
|
||||
{
|
||||
return (ZydisInstructionTableNodeType)
|
||||
ZYDIS_GET_INSTRUCTIONTABLENODE_TYPE((*(ZydisInternalInstructionTableNode*)node));
|
||||
}
|
||||
|
||||
ZydisInstructionTableNodeValue ZydisInstructionTableGetNodeValue(
|
||||
const ZydisInstructionTableNode* node)
|
||||
{
|
||||
return (ZydisInstructionTableNodeValue)
|
||||
ZYDIS_GET_INSTRUCTIONTABLENODE_VALUE((*(ZydisInternalInstructionTableNode*)node));
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
ZydisInstructionTableNode ZydisInstructionTableGetRootNode()
|
||||
{
|
||||
static const ZydisInternalInstructionTableNode root =
|
||||
ZYDIS_MAKE_INSTRUCTIONTABLENODE(ZYDIS_NODETYPE_FILTER_OPCODE, 0x00000000);
|
||||
return (ZydisInstructionTableNode)&root;
|
||||
}
|
||||
|
||||
ZydisInstructionTableNode ZydisInstructionTableGetChildNode(
|
||||
const ZydisInstructionTableNode parent, uint16_t index)
|
||||
{
|
||||
ZydisInstructionTableNodeType nodeType = ZydisInstructionTableGetNodeType(parent);
|
||||
uint16_t tableIndex = ZydisInstructionTableGetNodeValue(parent);
|
||||
switch (nodeType)
|
||||
{
|
||||
case ZYDIS_NODETYPE_FILTER_OPCODE:
|
||||
ZYDIS_ASSERT(index < 256);
|
||||
return (ZydisInstructionTableNode*)&filterOpcode[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_VEX:
|
||||
ZYDIS_ASSERT(index < 16);
|
||||
return (ZydisInstructionTableNode*)&filterVEX[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_XOP:
|
||||
ZYDIS_ASSERT(index < 4);
|
||||
return (ZydisInstructionTableNode*)&filterXOP[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODE:
|
||||
ZYDIS_ASSERT(index < 3);
|
||||
return (ZydisInstructionTableNode*)&filterMode[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MANDATORYPREFIX:
|
||||
ZYDIS_ASSERT(index < 4);
|
||||
return (ZydisInstructionTableNode*)&filterMandatoryPrefix[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMMOD:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterModrmMod[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMREG:
|
||||
ZYDIS_ASSERT(index < 8);
|
||||
return (ZydisInstructionTableNode*)&filterModrmReg[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_MODRMRM:
|
||||
ZYDIS_ASSERT(index < 8);
|
||||
return (ZydisInstructionTableNode*)&filterModrmRm[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_OPERANDSIZE:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterOperandSize[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_ADDRESSSIZE:
|
||||
ZYDIS_ASSERT(index < 3);
|
||||
return (ZydisInstructionTableNode*)&filterAddressSize[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_REXW:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterREXW[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_VEXL:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterVEXL[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_EVEXL2:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterEVEXL2[tableIndex][index];
|
||||
case ZYDIS_NODETYPE_FILTER_EVEXB:
|
||||
ZYDIS_ASSERT(index < 2);
|
||||
return (ZydisInstructionTableNode*)&filterEVEXB[tableIndex][index];
|
||||
default:
|
||||
ZYDIS_UNREACHABLE;
|
||||
}
|
||||
static const ZydisInternalInstructionTableNode invalid =
|
||||
ZYDIS_MAKE_INSTRUCTIONTABLENODE(ZYDIS_NODETYPE_INVALID, 0x00000000);
|
||||
return (ZydisInstructionTableNode)&invalid;
|
||||
}
|
||||
|
||||
ZydisInstructionDefinition ZydisInstructionDefinitionByNode(
|
||||
const ZydisInstructionTableNode node)
|
||||
{
|
||||
ZydisInstructionDefinition result;
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
const ZydisInternalInstructionDefinition* definition =
|
||||
&instructionDefinitions[ZydisInstructionTableGetNodeValue(node)];
|
||||
result.mnemonic = ZYDIS_GET_INSTRUCTIONDEFINITION_MNEMONIC((*definition));
|
||||
result.evexBFunctionality = ZYDIS_GET_INSTRUCTIONDEFINITION_EVEXBFUNCTIONALITY((*definition));
|
||||
result.hasEvexAAA = ZYDIS_GET_INSTRUCTIONDEFINITION_HASEVEXAAA((*definition));
|
||||
result.hasEvexZ = ZYDIS_GET_INSTRUCTIONDEFINITION_HASEVEXZ((*definition));
|
||||
|
||||
const ZydisInternalOperandDefinition* operand = NULL;
|
||||
switch (ZydisInstructionTableGetNodeType(node))
|
||||
{
|
||||
case ZYDIS_NODETYPE_DEFINITION_0OP:
|
||||
result.operandCount = 0;
|
||||
break;
|
||||
case ZYDIS_NODETYPE_DEFINITION_1OP:
|
||||
result.operandCount = 1;
|
||||
operand = operandDefinitions1[ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF((*definition))];
|
||||
break;
|
||||
case ZYDIS_NODETYPE_DEFINITION_2OP:
|
||||
result.operandCount = 2;
|
||||
operand = operandDefinitions2[ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF((*definition))];
|
||||
break;
|
||||
case ZYDIS_NODETYPE_DEFINITION_3OP:
|
||||
result.operandCount = 3;
|
||||
operand = operandDefinitions3[ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF((*definition))];
|
||||
break;
|
||||
case ZYDIS_NODETYPE_DEFINITION_4OP:
|
||||
result.operandCount = 4;
|
||||
operand = operandDefinitions4[ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF((*definition))];
|
||||
break;
|
||||
case ZYDIS_NODETYPE_DEFINITION_5OP:
|
||||
result.operandCount = 5;
|
||||
operand = operandDefinitions5[ZYDIS_GET_INSTRUCTIONDEFINITION_OPERANDREF((*definition))];
|
||||
break;
|
||||
default:
|
||||
ZYDIS_UNREACHABLE;
|
||||
}
|
||||
if (result.operandCount > 0)
|
||||
{
|
||||
for (int i = 0; i < result.operandCount; ++i)
|
||||
{
|
||||
result.operands[i].type = ZYDIS_GET_OPERANDDEFINITION_TYPE((*operand));
|
||||
result.operands[i].encoding = ZYDIS_GET_OPERANDDEFINITION_ENCODING((*operand));
|
||||
result.operands[i].access = ZYDIS_GET_OPERANDDEFINITION_ACCESS((*operand));
|
||||
++operand;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Main instruction-table */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
#define ZYDIS_INVALID \
|
||||
ZYDIS_MAKE_INSTRUCTIONTABLENODE(ZYDIS_NODETYPE_INVALID, 0x00000000)
|
||||
#define ZYDIS_FILTER(type, id) \
|
||||
{ type, id }
|
||||
#define ZYDIS_DEFINITION_0OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_0OP, id }
|
||||
#define ZYDIS_DEFINITION_1OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_1OP, id }
|
||||
#define ZYDIS_DEFINITION_2OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_2OP, id }
|
||||
#define ZYDIS_DEFINITION_3OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_3OP, id }
|
||||
#define ZYDIS_DEFINITION_4OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_4OP, id }
|
||||
#define ZYDIS_DEFINITION_5OP(id) \
|
||||
{ ZYDIS_NODETYPE_DEFINITION_5OP, id }
|
||||
|
||||
#include <Zydis/Internal/InstructionFilters.inc>
|
||||
|
||||
#undef ZYDIS_INVALID
|
||||
#undef ZYDIS_FILTER
|
||||
#undef ZYDIS_DEFINITION
|
||||
#undef ZYDIS_DEFINITION_0OP
|
||||
#undef ZYDIS_DEFINITION_1OP
|
||||
#undef ZYDIS_DEFINITION_2OP
|
||||
#undef ZYDIS_DEFINITION_3OP
|
||||
#undef ZYDIS_DEFINITION_4OP
|
||||
#undef ZYDIS_DEFINITION_5OP
|
||||
|
||||
#define ZYDIS_MAKE_OPERAND(type, encoding, access) \
|
||||
(((uint16_t)type) << 8) | ((((uint16_t)encoding) & 0x3F) << 2) | (access & 0x03)
|
||||
#undef ZYDIS_MAKE_INSTRUCTIONTABLENODE
|
||||
|
||||
#define ZYDIS_MAKE_AVX512INFO(hasEvexB, hasEvexAAA, hasEvexZ) \
|
||||
((((uint8_t)hasEvexB & 0x03) << 2) | (((uint8_t)hasEvexAAA & 0x01) << 1) | (hasEvexZ & 0x01))
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Operand definitions */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
//#define ZYDIS_MAKE_DEFINITION(mnemonic, op1, op2, op3, op4, avx512info) \
|
||||
// { (((uint16_t)mnemonic & 0xFFF) << 4) | (avx512info & 0xF), { op1, op2, op3, op4 } }
|
||||
#define ZYDIS_MAKE_DEFINITION(mnemonic, operandsId, avx512info) \
|
||||
{ (((uint16_t)mnemonic & 0xFFF) << 4) | (avx512info & 0xF), operandsId }
|
||||
#include <Zydis/Internal/OperandDefinitions.inc>
|
||||
|
||||
#undef ZYDIS_MAKE_OPERANDDEFINITION
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
/* Instruction definitions */
|
||||
/* ---------------------------------------------------------------------------------------------- */
|
||||
|
||||
#include <Zydis/Internal/InstructionDefinitions.inc>
|
||||
|
||||
#undef ZYDIS_MAKE_OPERAND
|
||||
#undef ZYDIS_MAKE_AVX512INFO
|
||||
#undef ZYDIS_MAKE_DEFINITION
|
||||
#undef ZYDIS_MAKE_INSTRUCTIONDEFINITION
|
||||
|
||||
/* ============================================================================================== */
|
||||
|
|
Loading…
Reference in New Issue