Register type.
Provides a unique type that can be used to identify a register or its view.
| Constant | Description |
|---|
| kNone | No register - unused, invalid, multiple meanings.
|
| kLabelTag | This is not a register type. This value is reserved for a Label that's used in BaseMem as a base.
Label tag is used as a sub-type, forming a unique signature across all operand types as 0x1 is never associated with any register type. This means that a memory operand's BASE register can be constructed from virtually any operand (register vs. label) by just assigning its type (register type or label-tag) and operand id.
|
| kGp8Lo | 8-bit low general purpose register (X86|X86_64).
|
| kGp8Hi | 8-bit high general purpose register (X86|X86_64).
|
| kGp16 | 16-bit general purpose register (X86|X86_64).
|
| kGp32 | 32-bit general purpose register (X86|X86_64|AArch32|AArch64).
|
| kGp64 | 64-bit general purpose register (X86_64|AArch64).
|
| kVec8 | 8-bit view of a vector register (AArch64).
|
| kVec16 | 16-bit view of a vector register (AArch64).
|
| kVec32 | 32-bit view of a vector register (AArch32|AArch64).
|
| kVec64 | 64-bit view of a vector register (AArch32|AArch64).
NoteThis is never used for MMX registers on X86, MMX registers have its own category.
|
| kVec128 | 128-bit view of a vector register (X86|X86_64|AArch32|AArch64).
|
| kVec256 | 256-bit view of a vector register (X86|X86_64).
|
| kVec512 | 512-bit view of a vector register (X86|X86_64).
|
| kVec1024 | 1024-bit view of a vector register (future).
|
| kVecNLen | View of a vector register, which width is implementation specific (AArch64).
|
| kMask | Mask register (X86|X86_64|AArch64).
|
| kTile | Tile register (X86_64: TMM).
|
| kSegment | Segment register (X86|X86_64: None, ES, CS, SS, DS, FS, GS).
|
| kControl | Control register (X86|X86_64: CR).
|
| kDebug | Debug register (X86|X86_64: DR).
|
| kX86_Mm | MMX register (X86|X86_64: MM).
|
| kX86_St | FPU (x87) register (X86|X86_64: ST).
|
| kX86_Bnd | Bound register (X86|X86_64: BND).
|
| kPC | Universal type describing program counter (PC) or instruction pointer (EIP/RIP) register, if the target architecture actually exposes it as a separate register type, which most modern architectures do.
X86 Specific
Instruction pointer (RIP), only addressable in x86::Mem in 64-bit targets.
|
| kMaxValue | Maximum value of RegType.
|