Minor refactorings and bugfixes

This commit is contained in:
flobernd 2016-11-24 10:57:23 +01:00
parent 659ead2280
commit 7f1c0bd8f1
15 changed files with 2592 additions and 2298 deletions

View File

@ -3,8 +3,8 @@ object frmEditorCPUIDFeatureFlags: TfrmEditorCPUIDFeatureFlags
Top = 0 Top = 0
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'frmEditorCPUIDFeatureFlags' Caption = 'frmEditorCPUIDFeatureFlags'
ClientHeight = 321 ClientHeight = 371
ClientWidth = 494 ClientWidth = 544
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@ -19,17 +19,19 @@ object frmEditorCPUIDFeatureFlags: TfrmEditorCPUIDFeatureFlags
object GroupBox: TGroupBox object GroupBox: TGroupBox
AlignWithMargins = True AlignWithMargins = True
Left = 3 Left = 3
Top = 279 Top = 329
Width = 488 Width = 538
Height = 39 Height = 39
Margins.Top = 0 Margins.Top = 0
Align = alBottom Align = alBottom
TabOrder = 1 TabOrder = 1
ExplicitTop = 279
ExplicitWidth = 488
DesignSize = ( DesignSize = (
488 538
39) 39)
object btnCancel: TButton object btnCancel: TButton
Left = 368 Left = 418
Top = 7 Top = 7
Width = 112 Width = 112
Height = 25 Height = 25
@ -41,9 +43,10 @@ object frmEditorCPUIDFeatureFlags: TfrmEditorCPUIDFeatureFlags
Images = imgIcons16 Images = imgIcons16
TabOrder = 1 TabOrder = 1
OnClick = btnCancelClick OnClick = btnCancelClick
ExplicitLeft = 368
end end
object btnApply: TButton object btnApply: TButton
Left = 250 Left = 300
Top = 7 Top = 7
Width = 112 Width = 112
Height = 25 Height = 25
@ -55,14 +58,15 @@ object frmEditorCPUIDFeatureFlags: TfrmEditorCPUIDFeatureFlags
Images = imgIcons16 Images = imgIcons16
TabOrder = 0 TabOrder = 0
OnClick = btnApplyClick OnClick = btnApplyClick
ExplicitLeft = 250
end end
end end
object VirtualTreeView: TVirtualStringTree object VirtualTreeView: TVirtualStringTree
AlignWithMargins = True AlignWithMargins = True
Left = 3 Left = 3
Top = 3 Top = 3
Width = 488 Width = 538
Height = 273 Height = 323
Align = alClient Align = alClient
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Font.Charset = DEFAULT_CHARSET Header.Font.Charset = DEFAULT_CHARSET
@ -81,6 +85,8 @@ object frmEditorCPUIDFeatureFlags: TfrmEditorCPUIDFeatureFlags
OnFreeNode = VirtualTreeViewFreeNode OnFreeNode = VirtualTreeViewFreeNode
OnGetText = VirtualTreeViewGetText OnGetText = VirtualTreeViewGetText
OnGetImageIndex = VirtualTreeViewGetImageIndex OnGetImageIndex = VirtualTreeViewGetImageIndex
ExplicitWidth = 488
ExplicitHeight = 273
Columns = <> Columns = <>
end end
object imgIcons16: TcxImageList object imgIcons16: TcxImageList

View File

@ -3,8 +3,8 @@ object frmEditorX86Registers: TfrmEditorX86Registers
Top = 0 Top = 0
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'frmEditorX86Registers' Caption = 'frmEditorX86Registers'
ClientHeight = 421 ClientHeight = 471
ClientWidth = 594 ClientWidth = 694
Color = clBtnFace Color = clBtnFace
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
@ -19,17 +19,19 @@ object frmEditorX86Registers: TfrmEditorX86Registers
object GroupBox: TGroupBox object GroupBox: TGroupBox
AlignWithMargins = True AlignWithMargins = True
Left = 3 Left = 3
Top = 379 Top = 429
Width = 588 Width = 688
Height = 39 Height = 39
Margins.Top = 0 Margins.Top = 0
Align = alBottom Align = alBottom
TabOrder = 1 TabOrder = 1
ExplicitTop = 379
ExplicitWidth = 588
DesignSize = ( DesignSize = (
588 688
39) 39)
object btnCancel: TButton object btnCancel: TButton
Left = 468 Left = 568
Top = 7 Top = 7
Width = 112 Width = 112
Height = 25 Height = 25
@ -41,9 +43,10 @@ object frmEditorX86Registers: TfrmEditorX86Registers
Images = imgIcons16 Images = imgIcons16
TabOrder = 1 TabOrder = 1
OnClick = btnCancelClick OnClick = btnCancelClick
ExplicitLeft = 468
end end
object btnApply: TButton object btnApply: TButton
Left = 350 Left = 450
Top = 7 Top = 7
Width = 112 Width = 112
Height = 25 Height = 25
@ -55,14 +58,15 @@ object frmEditorX86Registers: TfrmEditorX86Registers
Images = imgIcons16 Images = imgIcons16
TabOrder = 0 TabOrder = 0
OnClick = btnApplyClick OnClick = btnApplyClick
ExplicitLeft = 350
end end
end end
object VirtualTreeView: TVirtualStringTree object VirtualTreeView: TVirtualStringTree
AlignWithMargins = True AlignWithMargins = True
Left = 3 Left = 3
Top = 3 Top = 3
Width = 588 Width = 688
Height = 373 Height = 423
Align = alClient Align = alClient
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Font.Charset = DEFAULT_CHARSET Header.Font.Charset = DEFAULT_CHARSET
@ -81,6 +85,8 @@ object frmEditorX86Registers: TfrmEditorX86Registers
OnFreeNode = VirtualTreeViewFreeNode OnFreeNode = VirtualTreeViewFreeNode
OnGetText = VirtualTreeViewGetText OnGetText = VirtualTreeViewGetText
OnGetImageIndex = VirtualTreeViewGetImageIndex OnGetImageIndex = VirtualTreeViewGetImageIndex
ExplicitWidth = 588
ExplicitHeight = 373
Columns = <> Columns = <>
end end
object imgIcons16: TcxImageList object imgIcons16: TcxImageList

View File

@ -30,6 +30,10 @@ type
TOperandList = TArray<TInstructionOperands>; TOperandList = TArray<TInstructionOperands>;
TOperandMapping = array[1..5] of TOperandList; TOperandMapping = array[1..5] of TOperandList;
TRegisterList = TArray<TX86Registers>;
TFlagsList = TArray<TX86Flags>;
TCPUIDList = TArray<TCPUIDFeatureFlags>;
TCodeGeneratorStatistics = record TCodeGeneratorStatistics = record
public public
MnemonicCount: Integer; MnemonicCount: Integer;
@ -76,14 +80,24 @@ type
const DefinitionList: TIndexedInstructionDefinitionList; const DefinitionList: TIndexedInstructionDefinitionList;
var FilterList: TIndexedInstructionFilterList; var InstructionFilterCount: Integer; var FilterList: TIndexedInstructionFilterList; var InstructionFilterCount: Integer;
var InstructionFilterSize: Cardinal); var InstructionFilterSize: Cardinal);
procedure CreateRegisterList(const DefinitionList: TIndexedInstructionDefinitionList;
var RegisterList: TRegisterList);
procedure CreateFlagsList(const DefinitionList: TIndexedInstructionDefinitionList;
var FlagsList: TFlagsList);
procedure CreateCPUIDList(const DefinitionList: TIndexedInstructionDefinitionList;
var CPUIDList: TCPUIDList);
procedure CreateSnapshot(Editor: TInstructionEditor; var Statistics: TCodeGeneratorStatistics; procedure CreateSnapshot(Editor: TInstructionEditor; var Statistics: TCodeGeneratorStatistics;
var MnemonicList: TMnemonicList; var MnemonicList: TMnemonicList;
var DefinitionList: TIndexedInstructionDefinitionList; var OperandMapping: TOperandMapping; var DefinitionList: TIndexedInstructionDefinitionList; var OperandMapping: TOperandMapping;
var FilterList: TIndexedInstructionFilterList); var FilterList: TIndexedInstructionFilterList;
var RegisterList: TRegisterList; var FlagsList: TFlagsList; var CPUIDList: TCPUIDList);
strict private strict private
procedure GenerateInternalStructs(const OutputDirectory: String; procedure GenerateInternalStructs(const OutputDirectory: String;
const MnemonicList: TMnemonicList; const DefinitionList: TIndexedInstructionDefinitionList; const MnemonicList: TMnemonicList; const DefinitionList: TIndexedInstructionDefinitionList;
const OperandMapping: TOperandMapping; const FilterList: TIndexedInstructionFilterList); const OperandMapping: TOperandMapping; const FilterList: TIndexedInstructionFilterList;
const RegisterList: TRegisterList; const FlagsList: TFlagsList; const CPUIDList: TCPUIDList);
procedure GenerateMnemonicIncludes(const OutputDirectory: String; procedure GenerateMnemonicIncludes(const OutputDirectory: String;
const MnemonicList: TMnemonicList); const MnemonicList: TMnemonicList);
procedure GenerateInstructionDefinitions(const OutputDirectory: String; procedure GenerateInstructionDefinitions(const OutputDirectory: String;
@ -168,6 +182,74 @@ begin
end; end;
procedure TCodeGenerator.CreateCPUIDList(const DefinitionList: TIndexedInstructionDefinitionList;
var CPUIDList: TCPUIDList);
var
List: TList<TCPUIDFeatureFlags>;
I, J: Integer;
B: Boolean;
begin
WorkStart('Creating CPUID list', 0, Length(DefinitionList));
List := TList<TCPUIDFeatureFlags>.Create;
try
for I := Low(DefinitionList) to High(DefinitionList) do
begin
B := false;
for J := 0 to List.Count - 1 do
begin
if (DefinitionList[I].Definition.CPUID.Equals(List.List[J])) then
begin
B := true;
Break;
end;
end;
if (not B) then
begin
List.Add(DefinitionList[I].Definition.CPUID);
end;
Work(I + 1);
end;
CPUIDList := List.ToArray;
finally
List.Free;
end;
WorkEnd;
end;
procedure TCodeGenerator.CreateFlagsList(const DefinitionList: TIndexedInstructionDefinitionList;
var FlagsList: TFlagsList);
var
List: TList<TX86Flags>;
I, J: Integer;
B: Boolean;
begin
WorkStart('Creating flags list', 0, Length(DefinitionList));
List := TList<TX86Flags>.Create;
try
for I := Low(DefinitionList) to High(DefinitionList) do
begin
B := false;
for J := 0 to List.Count - 1 do
begin
if (DefinitionList[I].Definition.X86Flags.Equals(List.List[J])) then
begin
B := true;
Break;
end;
end;
if (not B) then
begin
List.Add(DefinitionList[I].Definition.X86Flags);
end;
Work(I + 1);
end;
FlagsList := List.ToArray;
finally
List.Free;
end;
WorkEnd;
end;
procedure TCodeGenerator.CreateInstructionDefinitionList(Editor: TInstructionEditor; procedure TCodeGenerator.CreateInstructionDefinitionList(Editor: TInstructionEditor;
var DefinitionList: TIndexedInstructionDefinitionList; var InstructionDefinitionCount: Integer; var DefinitionList: TIndexedInstructionDefinitionList; var InstructionDefinitionCount: Integer;
var InstructionDefinitionSize: Cardinal); var InstructionDefinitionSize: Cardinal);
@ -463,6 +545,55 @@ begin
end; end;
end; end;
procedure TCodeGenerator.CreateRegisterList(const DefinitionList: TIndexedInstructionDefinitionList;
var RegisterList: TRegisterList);
var
List: TList<TX86Registers>;
I, J: Integer;
B: Boolean;
begin
WorkStart('Creating register list', 0, Length(DefinitionList));
List := TList<TX86Registers>.Create;
try
for I := Low(DefinitionList) to High(DefinitionList) do
begin
// ImplicitRead
B := false;
for J := 0 to List.Count - 1 do
begin
if (DefinitionList[I].Definition.ImplicitRead.Equals(List.List[J])) then
begin
B := true;
Break;
end;
end;
if (not B) then
begin
List.Add(DefinitionList[I].Definition.ImplicitRead);
end;
// ImplicitWrite
B := false;
for J := 0 to List.Count - 1 do
begin
if (DefinitionList[I].Definition.ImplicitWrite.Equals(List.List[J])) then
begin
B := true;
Break;
end;
end;
if (not B) then
begin
List.Add(DefinitionList[I].Definition.ImplicitWrite);
end;
Work(I + 1);
end;
RegisterList := List.ToArray;
finally
List.Free;
end;
WorkEnd;
end;
class constructor TCodeGenerator.Create; class constructor TCodeGenerator.Create;
begin begin
FLanguageBindings := TList<TLanguageBindingClass>.Create; FLanguageBindings := TList<TLanguageBindingClass>.Create;
@ -471,7 +602,8 @@ end;
procedure TCodeGenerator.CreateSnapshot(Editor: TInstructionEditor; procedure TCodeGenerator.CreateSnapshot(Editor: TInstructionEditor;
var Statistics: TCodeGeneratorStatistics; var MnemonicList: TMnemonicList; var Statistics: TCodeGeneratorStatistics; var MnemonicList: TMnemonicList;
var DefinitionList: TIndexedInstructionDefinitionList; var OperandMapping: TOperandMapping; var DefinitionList: TIndexedInstructionDefinitionList; var OperandMapping: TOperandMapping;
var FilterList: TIndexedInstructionFilterList); var FilterList: TIndexedInstructionFilterList;
var RegisterList: TRegisterList; var FlagsList: TFlagsList; var CPUIDList: TCPUIDList);
begin begin
// Create sorted mnemonic list with all aliases // Create sorted mnemonic list with all aliases
CreateMnemonicList(Editor, MnemonicList, Statistics.MnemonicCount, Statistics.MnemonicSize); CreateMnemonicList(Editor, MnemonicList, Statistics.MnemonicCount, Statistics.MnemonicSize);
@ -488,6 +620,13 @@ begin
CreateInstructionFilterList(Editor, DefinitionList, FilterList, Statistics.InstructionFilterCount, CreateInstructionFilterList(Editor, DefinitionList, FilterList, Statistics.InstructionFilterCount,
Statistics.InstructionFilterSize); Statistics.InstructionFilterSize);
// Create implicitly-used registers list
CreateRegisterList(DefinitionList, RegisterList); // TODO: Add statistics
// Create FLAGS/EFLAGS/RFLAGS list
CreateFlagsList(DefinitionList, FlagsList); // TODO: Add statistics
// Create CPUID list
CreateCPUIDList(DefinitionList, CPUIDList); // TODO: Add statistics
Statistics.TotalSize := Statistics.MnemonicSize + Statistics.InstructionDefinitionSize + Statistics.TotalSize := Statistics.MnemonicSize + Statistics.InstructionDefinitionSize +
Statistics.OperandDefinitionSize + Statistics.InstructionFilterSize; Statistics.OperandDefinitionSize + Statistics.InstructionFilterSize;
end; end;
@ -504,6 +643,9 @@ var
DefinitionList: TIndexedInstructionDefinitionList; DefinitionList: TIndexedInstructionDefinitionList;
OperandMapping: TOperandMapping; OperandMapping: TOperandMapping;
MnemonicList: TMnemonicList; MnemonicList: TMnemonicList;
RegisterList: TRegisterList;
FlagsList: TFlagsList;
CPUIDList: TCPUIDList;
Directory: String; Directory: String;
begin begin
// Check error cases // Check error cases
@ -519,7 +661,8 @@ begin
FCurrentOperationNumber := 0; FCurrentOperationNumber := 0;
FillChar(Statistics, SizeOf(Statistics), #0); FillChar(Statistics, SizeOf(Statistics), #0);
CreateSnapshot(Editor, Statistics, MnemonicList, DefinitionList, OperandMapping, FilterList); CreateSnapshot(Editor, Statistics, MnemonicList, DefinitionList, OperandMapping, FilterList,
RegisterList, FlagsList, CPUIDList);
Directory := IncludeTrailingPathDelimiter(OutputDirectory) + DIRECTORY_INCLUDE_INTERNAL; Directory := IncludeTrailingPathDelimiter(OutputDirectory) + DIRECTORY_INCLUDE_INTERNAL;
ForceDirectories(Directory); ForceDirectories(Directory);
@ -527,7 +670,8 @@ begin
GenerateInstructionDefinitions(Directory, DefinitionList, OperandMapping); GenerateInstructionDefinitions(Directory, DefinitionList, OperandMapping);
GenerateOperandDefinitions(Directory, OperandMapping); GenerateOperandDefinitions(Directory, OperandMapping);
GenerateInstructionFilters(Directory, FilterList); GenerateInstructionFilters(Directory, FilterList);
GenerateInternalStructs(Directory, MnemonicList, DefinitionList, OperandMapping, FilterList); GenerateInternalStructs(Directory, MnemonicList, DefinitionList, OperandMapping, FilterList,
RegisterList, FlagsList, CPUIDList);
end; end;
procedure TCodeGenerator.GenerateInstructionDefinitions(const OutputDirectory: String; procedure TCodeGenerator.GenerateInstructionDefinitions(const OutputDirectory: String;
@ -752,12 +896,16 @@ end;
procedure TCodeGenerator.GenerateInternalStructs(const OutputDirectory: String; procedure TCodeGenerator.GenerateInternalStructs(const OutputDirectory: String;
const MnemonicList: TMnemonicList; const DefinitionList: TIndexedInstructionDefinitionList; const MnemonicList: TMnemonicList; const DefinitionList: TIndexedInstructionDefinitionList;
const OperandMapping: TOperandMapping; const FilterList: TIndexedInstructionFilterList); const OperandMapping: TOperandMapping; const FilterList: TIndexedInstructionFilterList;
var const RegisterList: TRegisterList; const FlagsList: TFlagsList; const CPUIDList: TCPUIDList);
{var
HighestMnemonicId, HighestMnemonicId,
HighestInstructionDefinitionId, HighestInstructionDefinitionId,
HighestOperandDefinitionId, HighestOperandDefinitionId,
HighestInstructionFilterId: Integer; HighestInstructionFilterId,
HighestRegistersId,
HighestFlagsId,
HighestCPUIDId: Integer;
I: Integer; I: Integer;
begin begin
HighestMnemonicId := High(MnemonicList); HighestMnemonicId := High(MnemonicList);
@ -778,6 +926,10 @@ begin
HighestInstructionFilterId := High(FilterList[I].Value); HighestInstructionFilterId := High(FilterList[I].Value);
end; end;
end; end;
HighestRegistersId := High(RegisterList);
HighestFlagsId := High(FlagsList);
HighestCPUIDId := High(CPUIDList);}
begin
// TODO: // TODO:
end; end;
@ -915,6 +1067,7 @@ begin
optFixedAX : OperandType := 'AX'; optFixedAX : OperandType := 'AX';
optFixedDX : OperandType := 'DX'; optFixedDX : OperandType := 'DX';
optFixedEAX : OperandType := 'EAX'; optFixedEAX : OperandType := 'EAX';
optFixedECX : OperandType := 'ECX';
optFixedRAX : OperandType := 'RAX'; optFixedRAX : OperandType := 'RAX';
optFixedES : OperandType := 'ES'; optFixedES : OperandType := 'ES';
optFixedCS : OperandType := 'CS'; optFixedCS : OperandType := 'CS';

View File

@ -463,6 +463,7 @@ type
optFixedAX, optFixedAX,
optFixedDX, optFixedDX,
optFixedEAX, optFixedEAX,
optFixedECX,
optFixedRAX, optFixedRAX,
optFixedST0, optFixedST0,
optFixedES, optFixedES,
@ -1189,6 +1190,7 @@ const
'ax', 'ax',
'dx', 'dx',
'eax', 'eax',
'ecx',
'rax', 'rax',
'st0', 'st0',
'es', 'es',
@ -1271,27 +1273,37 @@ const
{$REGION 'Class: TJSONEnumHelper'} {$REGION 'Class: TJSONEnumHelper'}
type type
TJSONEnumHelper = record TJSONEnumHelper<TEnum> = record
strict private strict private
class function ReadString(JSON: PJSONVariantData; const Name, Default: String; class function ReadString(JSON: PJSONVariantData; const Name, Default: String;
const LowerCase: Boolean = true): String; static; inline; const LowerCase: Boolean = true): String; static; inline;
public public
class function ReadEnumValueFromString(JSON: PJSONVariantData; const Name: String; class function ReadValue(JSON: PJSONVariantData; const Name: String;
const Values: array of String): Integer; static; const ElementStrings: array of String): TEnum; static;
end; end;
class function TJSONEnumHelper.ReadEnumValueFromString(JSON: PJSONVariantData; const Name: String; class function TJSONEnumHelper<TEnum>.ReadValue(JSON: PJSONVariantData; const Name: String;
const Values: array of String): Integer; const ElementStrings: array of String): TEnum;
var
V: Integer;
begin begin
Result := TStringHelper.IndexStr(ReadString(JSON, Name, Values[0]), Values); {$IFDEF DEBUG}
if (Result < 0) then if (PTypeInfo(TypeInfo(TEnum))^.Kind <> tkEnumeration) then
begin begin
raise Exception.Create('Invalid generic type.');
end;
{$ENDIF}
V := TStringHelper.IndexStr(ReadString(JSON, Name, ElementStrings[0]), ElementStrings);
if (V < 0) then
begin
// TODO: Maybe make this a warning instead of an exception
raise Exception.CreateFmt('The "%s" field contains an invalid enum value.', [Name]); raise Exception.CreateFmt('The "%s" field contains an invalid enum value.', [Name]);
end; end;
Result := TEnum(Pointer(@V)^);
end; end;
class function TJSONEnumHelper.ReadString(JSON: PJSONVariantData; const Name, Default: String; class function TJSONEnumHelper<TEnum>.ReadString(JSON: PJSONVariantData;
const LowerCase: Boolean): String; const Name, Default: String; const LowerCase: Boolean): String;
var var
V: Variant; V: Variant;
begin begin
@ -1382,6 +1394,7 @@ begin
Break; Break;
end; end;
end; end;
// TODO: Show exception (or warning), if an invalid element was found
end; end;
end; end;
end; end;
@ -1461,7 +1474,6 @@ end;
procedure TOpcodeExtensions.LoadFromJSON(JSON: PJSONVariantData; const FieldName: String); procedure TOpcodeExtensions.LoadFromJSON(JSON: PJSONVariantData; const FieldName: String);
var var
V: PJSONVariantData; V: PJSONVariantData;
I: Integer;
begin begin
V := JSON.Data(FieldName); V := JSON.Data(FieldName);
if (Assigned(V)) then if (Assigned(V)) then
@ -1470,21 +1482,22 @@ begin
begin begin
raise Exception.CreateFmt('The "%s" field is not a valid JSON object.', [FieldName]); raise Exception.CreateFmt('The "%s" field is not a valid JSON object.', [FieldName]);
end; end;
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'mode', SExtInstructionMode); SetMode(TJSONEnumHelper<TExtInstructionMode>.ReadValue(
SetMode(TExtInstructionMode(I)); V, 'mode', SExtInstructionMode));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'prefix', SExtMandatoryPrefix); SetPrefix(TJSONEnumHelper<TExtMandatoryPrefix>.ReadValue(
SetPrefix(TExtMandatoryPrefix(I)); V, 'prefix', SExtMandatoryPrefix));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'modrm_mod', SExtModrmMod); SetModrmMod(TJSONEnumHelper<TExtModrmMod>.ReadValue(
SetModrmMod(TExtModrmMod(I)); V, 'modrm_mod', SExtModrmMod));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'modrm_reg', SExtModrmReg); SetModrmReg(TJSONEnumHelper<TExtModrmReg>.ReadValue(
SetModrmReg(TExtModrmReg(I)); V, 'modrm_reg', SExtModrmReg));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'modrm_rm', SExtModrmRm); SetModrmRm(TJSONEnumHelper<TExtModrmRm>.ReadValue(
SetModrmRm(TExtModrmRm(I)); V, 'modrm_rm', SExtModrmRm));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'opsize', SExtOperandSize); SetOperandSize(TJSONEnumHelper<TExtOperandSize>.ReadValue(
SetOperandSize(TExtOperandSize(I)); V, 'opsize', SExtOperandSize));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'adsize', SExtAddressSize); SetAddressSize(TJSONEnumHelper<TExtAddressSize>.ReadValue(
SetAddressSize(TExtAddressSize(I)); V, 'adsize', SExtAddressSize));
SetBitFilters(TJSONSetHelper<TExtBitFilters>.ReadValue(V, 'bitfilters', SExtBitFilter)); SetBitFilters(TJSONSetHelper<TExtBitFilters>.ReadValue(
V, 'bitfilters', SExtBitFilter));
end; end;
end; end;
@ -1796,7 +1809,7 @@ var
C: PJSONVariantData; C: PJSONVariantData;
F: array[0..14] of ^TX86FlagValue; F: array[0..14] of ^TX86FlagValue;
N: array[0..14] of String; N: array[0..14] of String;
I, J: Integer; I: Integer;
begin begin
C := JSON.Data(FieldName); C := JSON.Data(FieldName);
if (Assigned(C)) then if (Assigned(C)) then
@ -1813,8 +1826,7 @@ begin
N[10] := 'vm'; N[11] := 'ac'; N[12] := 'vif'; N[13] := 'vip'; N[14] := 'id'; N[10] := 'vm'; N[11] := 'ac'; N[12] := 'vif'; N[13] := 'vip'; N[14] := 'id';
for I := Low(N) to High(N) do for I := Low(N) to High(N) do
begin begin
J := TJSONEnumHelper.ReadEnumValueFromString(C, N[I], SX86FlagValue); F[I]^ := TJSONEnumHelper<TX86FlagValue>.ReadValue(C, N[I], SX86FlagValue);
F[I]^ := TX86FlagValue(J);
end; end;
Changed; Changed;
end; end;
@ -2215,6 +2227,7 @@ begin
optFixedAX : Result := 'AX'; optFixedAX : Result := 'AX';
optFixedDX : Result := 'DX'; optFixedDX : Result := 'DX';
optFixedEAX : Result := 'EAX'; optFixedEAX : Result := 'EAX';
optFixedECX : Result := 'ECX';
optFixedRAX : Result := 'RAX'; optFixedRAX : Result := 'RAX';
optFixedES : Result := 'ES'; optFixedES : Result := 'ES';
optFixedCS : Result := 'CS'; optFixedCS : Result := 'CS';
@ -2238,7 +2251,6 @@ end;
procedure TInstructionOperand.LoadFromJSON(JSON: PJSONVariantData; const FieldName: String); procedure TInstructionOperand.LoadFromJSON(JSON: PJSONVariantData; const FieldName: String);
var var
V: PJSONVariantData; V: PJSONVariantData;
I: Integer;
begin begin
V := JSON^.Data(FieldName); V := JSON^.Data(FieldName);
if Assigned(V) then if Assigned(V) then
@ -2247,12 +2259,12 @@ begin
begin begin
raise Exception.CreateFmt('The "%s" field is not a valid JSON object.', [FieldName]); raise Exception.CreateFmt('The "%s" field is not a valid JSON object.', [FieldName]);
end; end;
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'type', SOperandType); SetType(TJSONEnumHelper<TOperandType>.ReadValue(
SetType(TOperandType(I)); V, 'type', SOperandType));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'encoding', SOperandEncoding); SetEncoding(TJSONEnumHelper<TOperandEncoding>.ReadValue(
SetEncoding(TOperandEncoding(I)); V, 'encoding', SOperandEncoding));
I := TJSONEnumHelper.ReadEnumValueFromString(V, 'accessmode', SOperandAccessMode); SetAccessMode(TJSONEnumHelper<TOperandAccessMode>.ReadValue(
SetAccessMode(TOperandAccessMode(I)); V, 'accessmode', SOperandAccessMode));
end; end;
end; end;
@ -2367,6 +2379,7 @@ begin
optFixedAX: ; optFixedAX: ;
optFixedDX: ; optFixedDX: ;
optFixedEAX: ; optFixedEAX: ;
optFixedECX: ;
optFixedRAX: ; optFixedRAX: ;
optFixedST0: ; optFixedST0: ;
optFixedES: ; optFixedES: ;
@ -2801,10 +2814,10 @@ begin
raise Exception.Create('The "mnemonic" field can not be empty.'); raise Exception.Create('The "mnemonic" field can not be empty.');
end; end;
SetMnemonic(JSON^.Value['mnemonic']); SetMnemonic(JSON^.Value['mnemonic']);
I := TJSONEnumHelper.ReadEnumValueFromString(JSON, 'encoding', SInstructionEncoding); SetEncoding(TJSONEnumHelper<TInstructionEncoding>.ReadValue(
SetEncoding(TInstructionEncoding(I)); JSON, 'encoding', SInstructionEncoding));
I := TJSONEnumHelper.ReadEnumValueFromString(JSON, 'map', SOpcodeMap); SetOpcodeMap(TJSONEnumHelper<TOpcodeMap>.ReadValue(
SetOpcodeMap(TOpcodeMap(I)); JSON, 'map', SOpcodeMap));
if (VarIsClear(JSON^.Value['opcode']) or if (VarIsClear(JSON^.Value['opcode']) or
(not TryStrToInt('$' + JSON^.Value['opcode'], I))) or (I < 0) or (I >= 256) then (not TryStrToInt('$' + JSON^.Value['opcode'], I))) or (I < 0) or (I >= 256) then
begin begin
@ -2821,7 +2834,8 @@ begin
FImplicitWrite.LoadFromJSON(JSON, 'implicit_write'); FImplicitWrite.LoadFromJSON(JSON, 'implicit_write');
SetFlags(TJSONSetHelper<TInstructionDefinitionFlags>.ReadValue( SetFlags(TJSONSetHelper<TInstructionDefinitionFlags>.ReadValue(
JSON, 'flags', SInstructionDefinitionFlag)); JSON, 'flags', SInstructionDefinitionFlag));
SetPrefixFlags(TJSONSetHelper<TPrefixFlags>.ReadValue(JSON, 'prefix_flags', SPrefixFlag)); SetPrefixFlags(TJSONSetHelper<TPrefixFlags>.ReadValue(
JSON, 'prefix_flags', SPrefixFlag));
FX86Flags.LoadFromJSON(JSON, 'x86flags'); FX86Flags.LoadFromJSON(JSON, 'x86flags');
FComment := JSON^.Value['comment']; FComment := JSON^.Value['comment'];
finally finally

View File

@ -32,7 +32,7 @@ type
TListHelper<T> = record TListHelper<T> = record
public public
class procedure BubbleSort(var List: TList<T>; Comparer: IComparer<T>); static; class procedure BubbleSort(var List: TList<T>; const Comparer: IComparer<T>); static;
end; end;
TJSONHelper = record TJSONHelper = record
@ -45,17 +45,16 @@ type
FBuffer: array of Char; FBuffer: array of Char;
FPosition: Integer; FPosition: Integer;
FCapacity: Integer; FCapacity: Integer;
FChunkSize: Integer; FChunkSize: Cardinal;
strict private strict private
function GetValue: String; inline; function GetValue: String; inline;
public public
procedure Append(const S: String); procedure Append(const S: String);
procedure AppendLn(const S: String); procedure AppendLn(const S: String);
public public
constructor Create; constructor Create(ChunkSize: Cardinal = 1024 * 16);
public public
property Value: String read GetValue; property Value: String read GetValue;
property ChunkSize: Integer read FChunkSize write FChunkSize;
end; end;
implementation implementation
@ -138,10 +137,9 @@ end;
{ TListHelper<T> } { TListHelper<T> }
class procedure TListHelper<T>.BubbleSort(var List: TList<T>; Comparer: IComparer<T>); class procedure TListHelper<T>.BubbleSort(var List: TList<T>; const Comparer: IComparer<T>);
var var
I: Integer; I: Integer;
Temp: T;
Done: Boolean; Done: Boolean;
begin begin
repeat repeat
@ -150,9 +148,7 @@ begin
begin begin
if (Comparer.Compare(List[I], List[I + 1]) > 0) then if (Comparer.Compare(List[I], List[I + 1]) > 0) then
begin begin
Temp := List[I]; List.Exchange(I, I + 1);
List[I] := List[I + 1];
List[I + 1] := Temp;
Done := false; Done := false;
end; end;
end; end;
@ -289,10 +285,10 @@ begin
Append(sLineBreak); Append(sLineBreak);
end; end;
constructor TStringBuffer.Create; constructor TStringBuffer.Create(ChunkSize: Cardinal);
begin begin
inherited Create; inherited Create;
FChunkSize := 1024 * 16; FChunkSize := ChunkSize;
FCapacity := FChunkSize; FCapacity := FChunkSize;
SetLength(FBuffer, FChunkSize); SetLength(FBuffer, FChunkSize);
end; end;

View File

@ -84,7 +84,7 @@ typedef uint32_t ZydisDecoderFlags;
* @brief Includes information about bits of the FLAGS/EFLAGS/RFLAGS register that are * @brief Includes information about bits of the FLAGS/EFLAGS/RFLAGS register that are
* affected by the instruction. * affected by the instruction.
*/ */
#define ZYDIS_DECODER_FLAG_AFFECTED_REGISTERS 0x00000010 #define ZYDIS_DECODER_FLAG_AFFECTED_FLAGS 0x00000010
/** /**
* @brief Includes information about the CPUID feature flags of the the instruction. * @brief Includes information about the CPUID feature flags of the the instruction.
*/ */

View File

@ -134,149 +134,170 @@ typedef uint32_t ZydisInstructionFlags;
/** /**
* @brief Defines the @c ZydisPrefixFlags datatype. * @brief Defines the @c ZydisPrefixFlags datatype.
*/ */
typedef uint32_t ZydisPrefixFlags; typedef uint64_t ZydisPrefixFlags;
/** /**
* @brief The instruction has the rex-prefix (0x40 - 0x4F). * @brief The instruction has the rex-prefix (0x40 - 0x4F).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_REX 0x00000001 #define ZYDIS_PREFIXFLAG_HAS_REX 0x0000000000000001
/** /**
* @brief The instruction has the xop-prefix (0x8F). * @brief The instruction has the xop-prefix (0x8F).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_XOP 0x00000002 #define ZYDIS_PREFIXFLAG_HAS_XOP 0x0000000000000002
/** /**
* @brief The instruction has the vex-prefix (0xC4 or 0xC5). * @brief The instruction has the vex-prefix (0xC4 or 0xC5).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_VEX 0x00000004 #define ZYDIS_PREFIXFLAG_HAS_VEX 0x0000000000000004
/** /**
* @brief The instruction has the evex-prefix (0x62). * @brief The instruction has the evex-prefix (0x62).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_EVEX 0x00000008 #define ZYDIS_PREFIXFLAG_HAS_EVEX 0x0000000000000008
/**
* @brief The instruction has the lock-prefix (0x0F)
*/
#define ZYDIS_PREFIXFLAG_HAS_LOCK 0x00000010
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAG_HAS_REP 0x00000020
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPE 0x00000020
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAGG_HAS_REPZ 0x00000020
/**
* @brief The instruction has the repne/repnz-prefix (0xF2)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPNE 0x00000040
/**
* @brief The instruction has the repne/repnz-prefix (0xF2)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPNZ 0x00000040
/** /**
* @brief The instruction has a segment-override prefix. * @brief The instruction has a segment-override prefix.
*/ */
#define ZYDIS_PREFIXFLAG_SEGMENT_MASK 0x00001F80 #define ZYDIS_PREFIXFLAG_SEGMENT_MASK 0x00000000000003F0
/** /**
* @brief The instruction has the cs segment-override prefix (0x2E). * @brief The instruction has the cs segment-override prefix (0x2E).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_CS 0x00000080 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_CS 0x0000000000000010
/** /**
* @brief The instruction has the ss segment-override prefix (0x36). * @brief The instruction has the ss segment-override prefix (0x36).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_SS 0x00000100 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_SS 0x0000000000000020
/** /**
* @brief The instruction has the ds segment-override prefix (0x3E). * @brief The instruction has the ds segment-override prefix (0x3E).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_DS 0x00000200 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_DS 0x0000000000000040
/** /**
* @brief The instruction has the es segment-override prefix (0x26). * @brief The instruction has the es segment-override prefix (0x26).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_ES 0x00000400 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_ES 0x0000000000000080
/** /**
* @brief The instruction has the fs segment-override prefix (0x64). * @brief The instruction has the fs segment-override prefix (0x64).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_FS 0x00000800 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_FS 0x0000000000000100
/** /**
* @brief The instruction has the gs segment-override prefix (0x65). * @brief The instruction has the gs segment-override prefix (0x65).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_SEGMENT_GS 0x00001000 #define ZYDIS_PREFIXFLAG_HAS_SEGMENT_GS 0x0000000000000200
/**
* @brief The instruction has the lock-prefix (0x0F)
*/
#define ZYDIS_PREFIXFLAG_HAS_LOCK 0x0000000000000400
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAG_HAS_REP 0x0000000000000800
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPE 0x0000000000000800
/**
* @brief The instruction has the rep/repe/repz-prefix (0xF3)
*/
#define ZYDIS_PREFIXFLAGG_HAS_REPZ 0x0000000000000800
/**
* @brief The instruction has the repne/repnz-prefix (0xF2)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPNE 0x0000000000001000
/**
* @brief The instruction has the repne/repnz-prefix (0xF2)
*/
#define ZYDIS_PREFIXFLAG_HAS_REPNZ 0x0000000000001000
/** /**
* @brief The instruction has the operand-size-override prefix (0x66). * @brief The instruction has the operand-size-override prefix (0x66).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_OPERANDSIZE 0x00002000 #define ZYDIS_PREFIXFLAG_HAS_OPERANDSIZE 0x0000000000002000
/** /**
* @brief The instruction has the address-size-override prefix (0x67). * @brief The instruction has the address-size-override prefix (0x67).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE 0x00004000 #define ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE 0x0000000000004000
/** /**
* @brief The instruction has the xacquire prefix (0xF2). * @brief The instruction has the xacquire prefix (0xF2).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_XACQUIRE 0x00008000 #define ZYDIS_PREFIXFLAG_HAS_XACQUIRE 0x0000000000008000
/** /**
* @brief The instruction has the xrelease prefix (0xF3). * @brief The instruction has the xrelease prefix (0xF3).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_XRELEASE 0x00010000 #define ZYDIS_PREFIXFLAG_HAS_XRELEASE 0x0000000000010000
/** /**
* @brief The instruction has the branch-not-taken hint (0x2E). * @brief The instruction has the branch-not-taken hint (0x2E).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_BRANCH_NOT_TAKEN 0x00020000 #define ZYDIS_PREFIXFLAG_HAS_BRANCH_NOT_TAKEN 0x0000000000020000
/** /**
* @brief The instruction has the branch-taken hint (0x3E). * @brief The instruction has the branch-taken hint (0x3E).
*/ */
#define ZYDIS_PREFIXFLAG_HAS_BRANCH_TAKEN 0x00040000 #define ZYDIS_PREFIXFLAG_HAS_BRANCH_TAKEN 0x0000000000040000
/**
* @brief The instruction accepts the operand-size override prefix (0x66)
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_OPERANDSIZE 0x00080000
/**
* @brief The instruction accepts the adress-size override prefix (0x67)
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_ADDRESSSIZE 0x00100000
/** /**
* @brief The instruction accepts the lock-prefix. * @brief The instruction accepts the lock-prefix.
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_LOCK 0x00200000 #define ZYDIS_PREFIXFLAG_ACCEPTS_LOCK 0x0000000000080000
/** /**
* @brief The instruction accepts the string prefixes (rep/repe/repz/repne/repnz). * @brief The instruction accepts the rep-prefix (0xF3).
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_REP 0x00400000 #define ZYDIS_PREFIXFLAG_ACCEPTS_REP 0x0000000000100000
/** /**
* @brief The instruction accepts the string prefixes (rep/repe/repz/repne/repnz). * @brief The instruction accepts the repe/repz prefix (0xF3).
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_REPE 0x00800000 #define ZYDIS_PREFIXFLAG_ACCEPTS_REPE 0x0000000000200000
/** /**
* @brief The instruction accepts the string prefixes (rep/repe/repz/repne/repnz). * @brief The instruction accepts the repe/repz prefix (0xF3).
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_REPZ 0x00800000 #define ZYDIS_PREFIXFLAG_ACCEPTS_REPZ 0x0000000000200000
/** /**
* @brief The instruction accepts the string prefixes (rep/repe/repz/repne/repnz). * @brief The instruction accepts the repne/repnz prefix (0xF2).
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_REPNE 0x01000000 #define ZYDIS_PREFIXFLAG_ACCEPTS_REPNE 0x0000000000400000
/** /**
* @brief The instruction accepts the string prefixes (rep/repe/repz/repne/repnz). * @brief The instruction accepts the repne/repnz prefix (0xF2).
*/ */
#define ZYDIS_PREFIXFLAG_ACCEPTS_REPNZ 0x01000000 #define ZYDIS_PREFIXFLAG_ACCEPTS_REPNZ 0x0000000000400000
/**
* @brief The instruction accepts the operand-size override prefix (0x66)
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_OPERANDSIZE 0x0000000000800000
/**
* @brief The instruction accepts the adress-size override prefix (0x67)
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_ADDRESSSIZE 0x0000000001000000
/**
* @brief The instruction accepts the xacquire prefix (0xF2).
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_XACQUIRE 0x0000000002000000
/**
* @brief The instruction accepts the xrelease prefix (0xF3).
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_XRELEASE 0x0000000004000000
/**
* @brief The instruction accepts the xqcquire/xrelease prefixes (0xF2, 0xF3) without the
* lock-prefix (0x0F).
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000008000000
/**
* @brief The instruction accepts branch hints (0x2E, 0x3E).
*/
#define ZYDIS_PREFIXFLAG_ACCEPTS_BRANCH_HINTS 0x0000000010000000
/** /**
* @brief The instruction has multiple prefixes of the first prefix-group (0x0F, 0xF3, 0xF2). * @brief The instruction has multiple prefixes of the first prefix-group (0x0F, 0xF3, 0xF2).
*/ */
#define ZYDIS_PREFIXFLAG_MULTIPLE_GRP1 0x02000000 #define ZYDIS_PREFIXFLAG_MULTIPLE_GRP1 0x0000000020000000
/** /**
* @brief The instruction has multiple prefixes of the second prefix-group (0x2E, 0x36, * @brief The instruction has multiple prefixes of the second prefix-group (0x2E, 0x36,
* 0x3E, 0x26, 0x64, 0x65). * 0x3E, 0x26, 0x64, 0x65).
*/ */
#define ZYDIS_PREFIXFLAG_MULTIPLE_GRP2 0x04000000 #define ZYDIS_PREFIXFLAG_MULTIPLE_GRP2 0x0000000040000000
/** /**
* @brief The instruction has multiple prefixes of the third prefix-group (0x66). * @brief The instruction has multiple prefixes of the third prefix-group (0x66).
*/ */
#define ZYDIS_PREFIXFLAG_MULTIPLE_GRP3 0x08000000 #define ZYDIS_PREFIXFLAG_MULTIPLE_GRP3 0x0000000080000000
/** /**
* @brief The instruction has multiple prefixes of the fourth prefix-group (0x67). * @brief The instruction has multiple prefixes of the fourth prefix-group (0x67).
*/ */
#define ZYDIS_PREFIXFLAG_MULTIPLE_GRP4 0x10000000 #define ZYDIS_PREFIXFLAG_MULTIPLE_GRP4 0x0000000100000000
/* ---------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------- */
/* Instruction encoding */ /* Instruction encoding */
@ -373,22 +394,73 @@ typedef uint8_t ZydisOperandEncoding;
enum ZydisOperandEncodings enum ZydisOperandEncodings
{ {
ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ENCODING_NONE,
/**
* @brief The operand is encoded in the modrm.reg field.
*/
ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ENCODING_REG,
/**
* @brief The operand is encoded in the modrm.rm field.
*/
ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ENCODING_RM,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ENCODING_RM_CD2,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ENCODING_RM_CD4,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ENCODING_RM_CD8,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ENCODING_RM_CD16,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ENCODING_RM_CD32,
/**
* @brief The operand is encoded in the modrm.rm field and uses the compressed-disp8 form.
*/
ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ENCODING_RM_CD64,
/**
* @brief The operand is encoded in the lower 4 bits of the opcode (register only).
*/
ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ENCODING_OPCODE,
/**
* @brief The operand is encoded in the vex/evex.vvvv field.
*/
ZYDIS_OPERAND_ENCODING_VVVV, ZYDIS_OPERAND_ENCODING_VVVV,
/**
* @brief The operand is encoded in the evex.aaa field.
*/
ZYDIS_OPERAND_ENCODING_AAA, ZYDIS_OPERAND_ENCODING_AAA,
/**
* @brief The operand is encoded in the low-part of an 8-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM8_LO, ZYDIS_OPERAND_ENCODING_IMM8_LO,
/**
* @brief The operand is encoded in the high-part of an 8-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM8_HI, ZYDIS_OPERAND_ENCODING_IMM8_HI,
/**
* @brief The operand is encoded as an 8-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ENCODING_IMM8,
/**
* @brief The operand is encoded as an 16-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ENCODING_IMM16,
/**
* @brief The operand is encoded as an 32-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ENCODING_IMM32,
/**
* @brief The operand is encoded as an 64-bit immediate value.
*/
ZYDIS_OPERAND_ENCODING_IMM64 ZYDIS_OPERAND_ENCODING_IMM64
}; };
@ -658,10 +730,6 @@ typedef struct ZydisInstructionInfo_
* @brief Instruction specific info- and error-flags. * @brief Instruction specific info- and error-flags.
*/ */
ZydisInstructionFlags instrFlags; ZydisInstructionFlags instrFlags;
/**
* @brief Prefix flags.
*/
ZydisPrefixFlags prefixFlags;
/** /**
* @brief The instruction-mnemonic. * @brief The instruction-mnemonic.
*/ */
@ -694,6 +762,22 @@ typedef struct ZydisInstructionInfo_
* @brief Detailed info for all instruction operands. * @brief Detailed info for all instruction operands.
*/ */
ZydisOperandInfo operand[5]; ZydisOperandInfo operand[5];
/**
* @brief Prefix flags.
*/
ZydisPrefixFlags prefixFlags;
/**
* @brief The instruction address points at the current instruction (relative to the
* initial instruction pointer).
*/
uint64_t instrAddress;
/**
* @brief The instruction pointer points at the address of the next instruction (relative
* to the initial instruction pointer).
*
* This field is used to properly format relative instructions.
*/
uint64_t instrPointer;
/** /**
* @brief Extended info for avx-related instructions. * @brief Extended info for avx-related instructions.
*/ */
@ -719,19 +803,7 @@ typedef struct ZydisInstructionInfo_
* @brief @c TRUE, if the AVX suppress-all-exceptions flag is set. * @brief @c TRUE, if the AVX suppress-all-exceptions flag is set.
*/ */
bool sae; bool sae;
} avx; } avx;
/**
* @brief The instruction address points at the current instruction (relative to the
* initial instruction pointer).
*/
uint64_t instrAddress;
/**
* @brief The instruction pointer points at the address of the next instruction (relative
* to the initial instruction pointer).
*
* This field is used to properly format relative instructions.
*/
uint64_t instrPointer;
/** /**
* @brief Extended info about different instruction-parts like modrm, sib or * @brief Extended info about different instruction-parts like modrm, sib or
* encoding-prefixes. * encoding-prefixes.
@ -910,6 +982,7 @@ typedef struct ZydisInstructionInfo_
*/ */
struct struct
{ {
const void* definition;
uint8_t w; uint8_t w;
uint8_t r; uint8_t r;
uint8_t x; uint8_t x;

View File

@ -12,4 +12,13 @@ typedef struct ZydisInstructionDefinition_
uint32_t acceptsXRELEASE : 1; uint32_t acceptsXRELEASE : 1;
uint32_t acceptsHLEWithoutLock : 1; uint32_t acceptsHLEWithoutLock : 1;
uint32_t acceptsBranchHints : 1; uint32_t acceptsBranchHints : 1;
#ifdef ZYDIS_ENABLE_FEATURE_IMPLICITLY_USED_REGISTERS
uint8_t implicitRegistersId : 8;
#endif
#ifdef ZYDIS_ENABLE_FEATURE_AFFECTED_FLAGS
uint8_t affectedFlagsId : 8;
#endif;
#ifdef ZYDIS_ENABLE_FEATURE_CPUID
uint8_t cpuidId : 8;
#endif
} ZydisInstructionDefinition; } ZydisInstructionDefinition;

File diff suppressed because it is too large Load Diff

View File

@ -6563,8 +6563,8 @@ const ZydisInstructionTableNode filterMode[][2] =
/*0002*/ ZYDIS_DEFINITION_1OP(0x1170) /*0002*/ ZYDIS_DEFINITION_1OP(0x1170)
}, },
{ {
/*0001*/ ZYDIS_DEFINITION_1OP(0x0333), /*0001*/ ZYDIS_DEFINITION_2OP(0x0333),
/*0002*/ ZYDIS_DEFINITION_1OP(0x0332) /*0002*/ ZYDIS_DEFINITION_2OP(0x0332)
}, },
{ {
/*0001*/ ZYDIS_DEFINITION_0OP(0x08F8), /*0001*/ ZYDIS_DEFINITION_0OP(0x08F8),

View File

@ -274,6 +274,7 @@ enum ZydisSemanticOperandTypes
ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_SEM_OPERAND_TYPE_AX,
ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_SEM_OPERAND_TYPE_DX,
ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_SEM_OPERAND_TYPE_EAX,
ZYDIS_SEM_OPERAND_TYPE_ECX,
ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_SEM_OPERAND_TYPE_RAX,
ZYDIS_SEM_OPERAND_TYPE_ES, ZYDIS_SEM_OPERAND_TYPE_ES,
ZYDIS_SEM_OPERAND_TYPE_CS, ZYDIS_SEM_OPERAND_TYPE_CS,

View File

@ -33,46 +33,46 @@ const ZydisOperandDefinition operandDefinitions1[][1] =
/*001E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM80, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*001E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM80, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*001F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM224, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*001F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM224, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0020*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM112, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0020*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM112, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0021*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0021*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0022*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0022*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0023*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0023*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0024*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0024*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0025*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0025*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0026*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0026*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0027*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0027*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0028*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0028*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0029*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0029*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*002A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*002A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*002B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_REL32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*002B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*002C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*002C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*002D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*002D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*002E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*002E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*002F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*002F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0030*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0030*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0031*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0031*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0032*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0032*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0033*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0033*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_ES, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0034*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0034*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0035*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_ES, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0035*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0036*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0036*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0037*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0037*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0038*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0038*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0039*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0039*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*003A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*003A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*003B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*003B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
/*003C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*003C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*003D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) }, /*003D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*003E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CS, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*003E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
/*003F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*003F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
/*0040*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) }, /*0040*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) },
/*0041*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) }, /*0041*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0042*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READ) }, /*0042*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0043*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0043*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0044*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0044*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0045*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0045*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0046*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0046*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0047*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0047*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0048*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE) } /*0048*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }
}; };
const ZydisOperandDefinition operandDefinitions2[][2] = const ZydisOperandDefinition operandDefinitions2[][2] =
@ -226,299 +226,301 @@ const ZydisOperandDefinition operandDefinitions2[][2] =
/*0092*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0092*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0093*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0093*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0094*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0094*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0095*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0095*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_ECX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0096*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0096*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_ECX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0097*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0097*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0098*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0098*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0099*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0099*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*009A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*009A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*009B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*009B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*009C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*009C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*009D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*009D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*009E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*009E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*009F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*009F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00A0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00A1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00A3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1616, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1632, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1616, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00A9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00A9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00AA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00AA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00AB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00AB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00AC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00AC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_M1664, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00AD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00AD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00AE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00AE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00AF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00AF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00B0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00B0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00B1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*00B1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00B2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00B2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00B3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00B3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*00B4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*00B4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00B5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*00B5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00B6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM64, ZYDIS_OPERAND_ACCESS_READ) }, /*00B6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*00B7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) }, /*00B7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*00B8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00B8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM64, ZYDIS_OPERAND_ACCESS_READ) },
/*00B9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00B9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
/*00BA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00BB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00BC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00BD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00BE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00BF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00BF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00C0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00C0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00C1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00C1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00C2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00C2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00C3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00C3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00C4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00C4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00C5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_TR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00C5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00C6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_TR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00C6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00C7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00C7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_TR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00C8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00C8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_TR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00C9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00C9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00CA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) }, /*00CA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00CB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*00CB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00CC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*00CC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
/*00CD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*00CD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*00CE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*00CE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*00CF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00CF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*00D0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) }, /*00D0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM32, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*00D1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) }, /*00D1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00D2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00D2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM64, ZYDIS_OPERAND_ENCODING_IMM32, ZYDIS_OPERAND_ACCESS_READ) },
/*00D3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM16, ZYDIS_OPERAND_ENCODING_IMM16, ZYDIS_OPERAND_ACCESS_READ) },
/*00D4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00D4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00D5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00D6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00D7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00D8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00D9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00D9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00DA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00DA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00DB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00DB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00DC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00DC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00DD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00DD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00DE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00DE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00DF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00DF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00E0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00E1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00E2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00E3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00E4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00E5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00E6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00E6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00E7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00E7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00E8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00E8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00E9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00E9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00EA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00EA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00EB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00EB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MOFFS16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00EC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00EC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00ED*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00ED*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SREG, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00EE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00EE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00EF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00EF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00F2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00F3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00F5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00F6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*00F7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00F8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00F9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00F9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*00FA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00FA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00FB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00FB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*00FC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00FC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00FD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*00FD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00FE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00FE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*00FF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*00FF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0100*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0100*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0101*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0101*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0102*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0102*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0103*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0103*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0104*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0104*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0105*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0105*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0106*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0106*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0107*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0107*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0108*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0108*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0109*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0109*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*010F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*010F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0110*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0110*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0111*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0111*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_SRCIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0112*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) }, /*0112*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0113*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0113*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0114*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0114*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE) },
/*0115*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0115*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0116*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0116*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0117*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0117*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0118*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0118*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0119*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0119*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*011A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*011B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*011C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*011D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*011E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*011F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*011F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0120*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0120*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0121*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0121*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0122*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0122*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0123*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0123*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0124*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0124*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0125*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0125*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0126*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0126*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_CL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0127*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0127*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0128*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0128*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0129*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*0129*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*012A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*012A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*012B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*012B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*012C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*012C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*012D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*012D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*012E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*012E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*012F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) }, /*012F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0130*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0130*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0131*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0131*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_IMM8U, ZYDIS_OPERAND_ENCODING_IMM8, ZYDIS_OPERAND_ACCESS_READ) },
/*0132*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0132*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_FIXED1, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0133*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0133*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0134*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0134*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0135*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0135*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0136*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0136*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0137*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0137*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX16, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0138*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) }, /*0138*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX32, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*0139*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0139*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX8, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AL, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*013A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*013A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_DSTIDX64, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READ) },
/*013B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*013B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*013C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*013C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*013D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*013D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*013E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) }, /*013E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*013F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) }, /*013F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0140*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) }, /*0140*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
/*0141*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0141*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
/*0142*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0142*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
/*0143*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0143*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0144*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0144*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0145*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0145*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0146*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0146*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0147*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0147*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0148*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0148*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0149*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0149*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*014A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*014A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*014B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*014B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*014C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*014C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*014D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*014D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*014E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*014E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*014F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*014F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0150*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0150*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0151*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0151*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0152*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0152*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0153*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0153*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0154*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0154*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0155*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0155*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0156*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0156*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0157*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0157*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0158*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0158*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0159*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0159*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST16, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*015A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*015A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*015B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) }, /*015B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*015C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) }, /*015C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*015D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) }, /*015D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
/*015E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*015E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
/*015F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*015F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_READ) },
/*0160*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0160*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0161*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0161*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0162*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0162*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST2, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0163*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0163*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0164*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) }, /*0164*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0165*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) }, /*0165*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0166*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0166*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_READ) },
/*0167*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0167*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_READ) },
/*0168*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0168*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST8, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0169*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0169*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_BCST4, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*016A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*016A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*016B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*016B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*016C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*016C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*016D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*016D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*016E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*016E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*016F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*016F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0170*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0170*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0171*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0171*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0172*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0172*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0173*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0173*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0174*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0174*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0175*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0175*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*0176*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0176*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0177*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0177*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0178*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*0178*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0179*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*0179*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*017A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*017A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*017B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*017B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*017C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*017C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*017D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*017D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*017E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*017E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*017F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) }, /*017F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0180*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0180*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0181*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0181*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_READ) },
/*0182*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0182*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0183*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0183*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0184*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0184*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0185*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0185*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0186*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0186*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM512, ZYDIS_OPERAND_ENCODING_RM_CD64, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0187*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0187*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0188*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*0188*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*0189*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0189*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*018A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*018A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*018B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*018B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*018C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*018C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*018D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*018D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*018E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*018E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*018F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*018F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0190*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0190*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0191*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0191*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0192*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0192*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0193*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0193*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0194*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0194*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM8, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0195*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0195*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0196*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0196*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0197*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0197*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0198*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) }, /*0198*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*0199*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*0199*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*019A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) }, /*019A*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
/*019B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) }, /*019B*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*019C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) }, /*019C*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
/*019D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*019D*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_READ) },
/*019E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*019E*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_READ) },
/*019F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*019F*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*01A0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*01A1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MSKR, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*01A2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM128, ZYDIS_OPERAND_ENCODING_RM_CD16, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM256, ZYDIS_OPERAND_ENCODING_RM_CD32, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01A9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01A9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM16, ZYDIS_OPERAND_ENCODING_RM_CD2, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AC*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AD*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AE*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01AF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01AF*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B0*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B1*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM32_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B2*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B3*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B4*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD4, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) }, /*01B5*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBZ, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR512, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) }, /*01B6*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBY, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) }, /*01B7*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_MEM64_VSIBX, ZYDIS_OPERAND_ENCODING_RM_CD8, ZYDIS_OPERAND_ACCESS_WRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR128, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ) },
/*01B8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) }, /*01B8*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_REG, ZYDIS_OPERAND_ACCESS_READ), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_VR256, ZYDIS_OPERAND_ENCODING_RM, ZYDIS_OPERAND_ACCESS_READ) },
/*01B9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) } /*01B9*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_RAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR64, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
/*01BA*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_EAX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR32, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) },
/*01BB*/ { ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_AX, ZYDIS_OPERAND_ENCODING_NONE, ZYDIS_OPERAND_ACCESS_READWRITE), ZYDIS_OPERAND_DEFINITION(ZYDIS_SEM_OPERAND_TYPE_GPR16, ZYDIS_OPERAND_ENCODING_OPCODE, ZYDIS_OPERAND_ACCESS_READWRITE) }
}; };
const ZydisOperandDefinition operandDefinitions3[][3] = const ZydisOperandDefinition operandDefinitions3[][3] =

View File

@ -72,7 +72,11 @@ enum ZydisStatusCode
/** /**
* @brief A buffer passed to a function was too small to complete the requested operation. * @brief A buffer passed to a function was too small to complete the requested operation.
*/ */
ZYDIS_STATUS_INSUFFICIENT_BUFFER_SIZE = 0x00000008, ZYDIS_STATUS_INSUFFICIENT_BUFFER_SIZE = 0x00000005,
/**
* @brief The base value for user-defined status codes.
*/
ZYDIS_STATUS_USER = 0x10000000
}; };
/* ============================================================================================== */ /* ============================================================================================== */

View File

@ -43,8 +43,8 @@ extern "C" {
/** /**
* @brief Calculates the absolute target-address of an relative instruction operand. * @brief Calculates the absolute target-address of an relative instruction operand.
* *
* @param info A pointer to the instruction-info struct. * @param info A pointer to the @c ZydisInstructionInfo struct.
* @param operand A pointer to the operand-info struct. * @param operand A pointer to the @c ZydisOperandInfo struct.
* @param address A pointer to the memory that receives the absolute target-address. * @param address A pointer to the memory that receives the absolute target-address.
* *
* @return A zydis status code * @return A zydis status code

View File

@ -930,6 +930,11 @@ static ZydisDecoderStatus ZydisDecodeOperand(ZydisInstructionDecoder* decoder,
operand->type = ZYDIS_OPERAND_TYPE_REGISTER; operand->type = ZYDIS_OPERAND_TYPE_REGISTER;
operand->reg = ZYDIS_REGISTER_DX; operand->reg = ZYDIS_REGISTER_DX;
return ZYDIS_STATUS_DECODER_SUCCESS; return ZYDIS_STATUS_DECODER_SUCCESS;
case ZYDIS_SEM_OPERAND_TYPE_ECX:
operand->size = 32;
operand->type = ZYDIS_OPERAND_TYPE_REGISTER;
operand->reg = ZYDIS_REGISTER_ECX;
return ZYDIS_STATUS_DECODER_SUCCESS;
case ZYDIS_SEM_OPERAND_TYPE_EAX: case ZYDIS_SEM_OPERAND_TYPE_EAX:
operand->size = 32; operand->size = 32;
operand->type = ZYDIS_OPERAND_TYPE_REGISTER; operand->type = ZYDIS_OPERAND_TYPE_REGISTER;
@ -1473,13 +1478,16 @@ static ZydisDecoderStatus ZydisDecodeOperand(ZydisInstructionDecoder* decoder,
switch (decoder->disassemblerMode) switch (decoder->disassemblerMode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_DISASSEMBLER_MODE_16BIT:
operand->mem.addressSize = (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 32 : 16; operand->mem.addressSize =
(info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 32 : 16;
break; break;
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_DISASSEMBLER_MODE_32BIT:
operand->mem.addressSize = (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 16 : 32; operand->mem.addressSize =
(info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 16 : 32;
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_DISASSEMBLER_MODE_64BIT:
operand->mem.addressSize = (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 32 : 64; operand->mem.addressSize =
(info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_ADDRESSSIZE) ? 32 : 64;
break; break;
default: default:
ZYDIS_UNREACHABLE; ZYDIS_UNREACHABLE;
@ -1540,7 +1548,7 @@ static ZydisDecoderStatus ZydisDecodeOperands(ZydisInstructionDecoder* decoder,
ZYDIS_ASSERT(decoder); ZYDIS_ASSERT(decoder);
ZYDIS_ASSERT(info); ZYDIS_ASSERT(info);
ZYDIS_ASSERT(operands); ZYDIS_ASSERT(operands);
ZYDIS_ASSERT(operandCount < 6); ZYDIS_ASSERT((operandCount > 0) && (operandCount < 6));
info->operandCount = operandCount; info->operandCount = operandCount;
for (int i = 0; i < operandCount; ++i) for (int i = 0; i < operandCount; ++i)
@ -1612,13 +1620,14 @@ static ZydisDecoderStatus ZydisDecodeOperands(ZydisInstructionDecoder* decoder,
* @brief Finalizes the @c ZydisInstructionInfo struct by adding additional information. * @brief Finalizes the @c ZydisInstructionInfo struct by adding additional information.
* *
* @param info A pointer to the @c ZydisInstructionInfo struct. * @param info A pointer to the @c ZydisInstructionInfo struct.
* @param definition A pointer to the @c ZydisInstructionDefinition struct.
*/ */
static void ZydisFinalizeInstructionInfo(ZydisInstructionInfo* info, static void ZydisFinalizeInstructionInfo(ZydisInstructionInfo* info)
const ZydisInstructionDefinition* definition)
{ {
ZYDIS_ASSERT(info); ZYDIS_ASSERT(info);
ZYDIS_ASSERT(definition); ZYDIS_ASSERT(info->details.internal.definition);
const ZydisInstructionDefinition* definition =
(ZydisInstructionDefinition*)info->details.internal.definition;
// Set prefix-flags // Set prefix-flags
if (definition->acceptsLock) if (definition->acceptsLock)
@ -1632,6 +1641,18 @@ static void ZydisFinalizeInstructionInfo(ZydisInstructionInfo* info,
{ {
info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_REPE | ZYDIS_PREFIXFLAG_ACCEPTS_REPNE; info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_REPE | ZYDIS_PREFIXFLAG_ACCEPTS_REPNE;
} }
if (definition->acceptsXACQUIRE)
{
info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_XACQUIRE;
}
if (definition->acceptsXRELEASE)
{
info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_XRELEASE;
}
if (definition->acceptsHLEWithoutLock)
{
info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_HLE_WITHOUT_LOCK;
}
if ((info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_LOCK) || (definition->acceptsHLEWithoutLock)) if ((info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_LOCK) || (definition->acceptsHLEWithoutLock))
{ {
if (definition->acceptsXACQUIRE && (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_REPE)) if (definition->acceptsXACQUIRE && (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_REPE))
@ -1647,6 +1668,7 @@ static void ZydisFinalizeInstructionInfo(ZydisInstructionInfo* info,
} }
if (definition->acceptsBranchHints) if (definition->acceptsBranchHints)
{ {
info->prefixFlags |= ZYDIS_PREFIXFLAG_ACCEPTS_BRANCH_HINTS;
if (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_SEGMENT_CS) if (info->prefixFlags & ZYDIS_PREFIXFLAG_HAS_SEGMENT_CS)
{ {
info->prefixFlags |= ZYDIS_PREFIXFLAG_HAS_BRANCH_NOT_TAKEN; info->prefixFlags |= ZYDIS_PREFIXFLAG_HAS_BRANCH_NOT_TAKEN;
@ -1697,9 +1719,9 @@ static void ZydisFinalizeInstructionInfo(ZydisInstructionInfo* info,
((info->operand[0].reg == ZYDIS_REGISTER_AX) && ((info->operand[0].reg == ZYDIS_REGISTER_AX) &&
(info->operand[1].reg == ZYDIS_REGISTER_AX))) (info->operand[1].reg == ZYDIS_REGISTER_AX)))
{ {
info->mnemonic = ZYDIS_MNEMONIC_NOP; info->mnemonic = ZYDIS_MNEMONIC_NOP;
info->operand[0].type = ZYDIS_OPERAND_TYPE_UNUSED; info->operandCount = 0;
info->operand[1].type = ZYDIS_OPERAND_TYPE_UNUSED; memset(&info->operand[0], 0, sizeof(ZydisOperandInfo) * 2);
} }
} }
} }
@ -2184,15 +2206,17 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
ZydisInstructionTableGetDefinition(node, &definition, &operands, &operandCount); ZydisInstructionTableGetDefinition(node, &definition, &operands, &operandCount);
ZYDIS_ASSERT(definition); ZYDIS_ASSERT(definition);
ZYDIS_ASSERT(operands); ZYDIS_ASSERT(operands || (operandCount == 0));
info->mnemonic = (ZydisInstructionMnemonic)definition->mnemonic; info->mnemonic = (ZydisInstructionMnemonic)definition->mnemonic;
info->details.internal.definition = (void*)definition;
if (info->encoding == ZYDIS_INSTRUCTION_ENCODING_3DNOW) if (info->encoding == ZYDIS_INSTRUCTION_ENCODING_3DNOW)
{ {
// Save input-buffer state and decode dummy operands // Save input-buffer state and decode dummy operands
uint8_t bufferPosRead = decoder->buffer.posRead; uint8_t bufferPosRead = decoder->buffer.posRead;
uint8_t length = info->length; uint8_t length = info->length;
ZYDIS_ASSERT(operandCount == 2);
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount)); ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount));
// Read actual 3dnow opcode // Read actual 3dnow opcode
ZYDIS_CHECK(ZydisInputNext(decoder, info, &info->opcode)); ZYDIS_CHECK(ZydisInputNext(decoder, info, &info->opcode));
@ -2221,15 +2245,19 @@ static ZydisDecoderStatus ZydisDecodeOpcode(ZydisInstructionDecoder* decoder,
// Decode actual operands and fix the instruction-info // Decode actual operands and fix the instruction-info
ZydisInstructionTableGetDefinition(node, &definition, &operands, &operandCount); ZydisInstructionTableGetDefinition(node, &definition, &operands, &operandCount);
ZYDIS_ASSERT(definition); ZYDIS_ASSERT(definition);
ZYDIS_ASSERT(operands); ZYDIS_ASSERT(operands && (operandCount == 2));
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount)); ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount));
info->mnemonic = (ZydisInstructionMnemonic)definition->mnemonic; info->mnemonic = (ZydisInstructionMnemonic)definition->mnemonic;
ZydisFinalizeInstructionInfo(info, definition); info->details.internal.definition = (void*)definition;
ZydisFinalizeInstructionInfo(info);
return ZydisInputNext(decoder, info, &info->opcode); return ZydisInputNext(decoder, info, &info->opcode);
} }
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount)); if (operandCount != 0)
ZydisFinalizeInstructionInfo(info, definition); {
ZYDIS_CHECK(ZydisDecodeOperands(decoder, info, operands, operandCount));
}
ZydisFinalizeInstructionInfo(info);
return ZYDIS_STATUS_DECODER_SUCCESS; return ZYDIS_STATUS_DECODER_SUCCESS;
} }
@ -2336,7 +2364,9 @@ ZydisStatus ZydisDecoderSetDisassemblerMode(ZydisInstructionDecoder* decoder,
ZydisDisassemblerMode disassemblerMode) ZydisDisassemblerMode disassemblerMode)
{ {
if (!decoder || if (!decoder ||
((disassemblerMode != 16) && (disassemblerMode != 32) && (disassemblerMode != 64))) ((disassemblerMode != ZYDIS_DISASSEMBLER_MODE_16BIT) &&
(disassemblerMode != ZYDIS_DISASSEMBLER_MODE_32BIT) &&
(disassemblerMode != ZYDIS_DISASSEMBLER_MODE_64BIT)))
{ {
return ZYDIS_STATUS_INVALID_PARAMETER; return ZYDIS_STATUS_INVALID_PARAMETER;
} }