/*
Copyright (C) 2018 de4dot@gmail.com
This file is part of Iced.
Iced is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Iced is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with Iced. If not, see .
*/
namespace Iced.Intel {
///
/// Instruction operand kind
///
public enum OpKind {
///
/// A register ().
///
/// This operand kind uses , ,
/// or depending on operand number.
/// See also .
///
Register = 0,// Code assumes this is 0
///
/// Near 16-bit branch. This operand kind uses
///
NearBranch16,
///
/// Near 32-bit branch. This operand kind uses
///
NearBranch32,
///
/// Near 64-bit branch. This operand kind uses
///
NearBranch64,
///
/// Far 16-bit branch. This operand kind uses and
///
FarBranch16,
///
/// Far 32-bit branch. This operand kind uses and
///
FarBranch32,
///
/// 8-bit constant. This operand kind uses
///
Immediate8,
///
/// 8-bit constant used by the enter, extrq, insertq instructions. This operand kind uses
///
Immediate8_2nd,
///
/// 16-bit constant. This operand kind uses
///
Immediate16,
///
/// 32-bit constant. This operand kind uses
///
Immediate32,
///
/// 64-bit constant. This operand kind uses
///
Immediate64,
///
/// An 8-bit value sign extended to 16 bits. This operand kind uses
///
Immediate8to16,
///
/// An 8-bit value sign extended to 32 bits. This operand kind uses
///
Immediate8to32,
///
/// An 8-bit value sign extended to 64 bits. This operand kind uses
///
Immediate8to64,
///
/// A 32-bit value sign extended to 64 bits. This operand kind uses
///
Immediate32to64,
///
/// seg:[si]. This operand kind uses , ,
///
MemorySegSI,
///
/// seg:[esi]. This operand kind uses , ,
///
MemorySegESI,
///
/// seg:[rsi]. This operand kind uses , ,
///
MemorySegRSI,
///
/// seg:[di]. This operand kind uses , ,
///
MemorySegDI,
///
/// seg:[edi]. This operand kind uses , ,
///
MemorySegEDI,
///
/// seg:[rdi]. This operand kind uses , ,
///
MemorySegRDI,
///
/// es:[di]. This operand kind uses
///
MemoryESDI,
///
/// es:[edi]. This operand kind uses
///
MemoryESEDI,
///
/// es:[rdi]. This operand kind uses
///
MemoryESRDI,
///
/// 64-bit offset [xxxxxxxxxxxxxxxx]. This operand kind uses ,
/// , ,
///
Memory64,
///
/// Memory operand.
///
/// This operand kind uses , ,
/// , ,
/// , , ,
///
///
Memory,
}
}