fcml
1.1.1
|
x86 - 64 register representation. More...
#include <fcml_common.hpp>
Public Types | |
enum | RegisterType { REG_UNDEFINED = FCML_REG_UNDEFINED, REG_GPR = FCML_REG_GPR, REG_SIMD = FCML_REG_SIMD, REG_FPU = FCML_REG_FPU, REG_SEG = FCML_REG_SEG, REG_CR = FCML_REG_CR, REG_DR = FCML_REG_DR, REG_IP = FCML_REG_IP } |
Register types. More... | |
Public Member Functions | |
Register () | |
Creates an empty register instance. More... | |
Register (const fcml_st_register ®) | |
Creates a register instance for given register structure. More... | |
Register (fcml_uint8_t reg, fcml_usize size, RegisterType type=REG_GPR, fcml_bool x64_exp=FCML_FALSE) | |
Creates a register instance for given parameters. More... | |
virtual | ~Register () |
fcml_uint8_t | getReg () const |
Gets the register number. More... | |
void | setReg (fcml_uint8_t reg) |
Sets the register number. More... | |
fcml_usize | getSize () const |
Gets the register size. More... | |
void | setSize (fcml_usize size) |
Sets the register size. More... | |
RegisterType | getType () const |
Gets the register type. More... | |
void | setType (RegisterType type) |
Sets the register type. More... | |
bool | getX64Exp () const |
Gets true if it's a 8-bit general purpose register for REX aware instruction. More... | |
void | setX64Exp (bool x64Exp) |
Sets x64exp flag, see manual. More... | |
bool | operator== (const Register ®) const |
Compares registers. More... | |
bool | operator!= (const Register ®) const |
Compares registers. More... | |
Static Public Member Functions | |
static const Register | UNDEF () |
Factory method for an undefined register. More... | |
static const Register | AL () |
Factory method for a register. More... | |
static const Register | AX () |
Factory method for a register. More... | |
static const Register | EAX () |
Factory method for a register. More... | |
static const Register | RAX () |
Factory method for a register. More... | |
static const Register | MM0 () |
Factory method for a register. More... | |
static const Register | XMM0 () |
Factory method for a register. More... | |
static const Register | YMM0 () |
Factory method for a register. More... | |
static const Register | CL () |
Factory method for a register. More... | |
static const Register | CX () |
Factory method for a register. More... | |
static const Register | ECX () |
Factory method for a register. More... | |
static const Register | RCX () |
Factory method for a register. More... | |
static const Register | MM1 () |
Factory method for a register. More... | |
static const Register | XMM1 () |
Factory method for a register. More... | |
static const Register | YMM1 () |
Factory method for a register. More... | |
static const Register | DL () |
Factory method for a register. More... | |
static const Register | DX () |
Factory method for a register. More... | |
static const Register | EDX () |
Factory method for a register. More... | |
static const Register | RDX () |
Factory method for a register. More... | |
static const Register | MM2 () |
Factory method for a register. More... | |
static const Register | XMM2 () |
Factory method for a register. More... | |
static const Register | YMM2 () |
Factory method for a register. More... | |
static const Register | BL () |
Factory method for a register. More... | |
static const Register | BX () |
Factory method for a register. More... | |
static const Register | EBX () |
Factory method for a register. More... | |
static const Register | RBX () |
Factory method for a register. More... | |
static const Register | MM3 () |
Factory method for a register. More... | |
static const Register | XMM3 () |
Factory method for a register. More... | |
static const Register | YMM3 () |
Factory method for a register. More... | |
static const Register | AH () |
Factory method for a register. More... | |
static const Register | SPL () |
Factory method for a register. More... | |
static const Register | SP () |
Factory method for a register. More... | |
static const Register | ESP () |
Factory method for a register. More... | |
static const Register | RSP () |
Factory method for a register. More... | |
static const Register | MM4 () |
Factory method for a register. More... | |
static const Register | XMM4 () |
Factory method for a register. More... | |
static const Register | YMM4 () |
Factory method for a register. More... | |
static const Register | CH () |
Factory method for a register. More... | |
static const Register | BPL () |
Factory method for a register. More... | |
static const Register | BP () |
Factory method for a register. More... | |
static const Register | EBP () |
Factory method for a register. More... | |
static const Register | RBP () |
Factory method for a register. More... | |
static const Register | MM5 () |
Factory method for a register. More... | |
static const Register | XMM5 () |
Factory method for a register. More... | |
static const Register | YMM5 () |
Factory method for a register. More... | |
static const Register | DH () |
Factory method for a register. More... | |
static const Register | SIL () |
Factory method for a register. More... | |
static const Register | SI () |
Factory method for a register. More... | |
static const Register | ESI () |
Factory method for a register. More... | |
static const Register | RSI () |
Factory method for a register. More... | |
static const Register | MM6 () |
Factory method for a register. More... | |
static const Register | XMM6 () |
Factory method for a register. More... | |
static const Register | YMM6 () |
Factory method for a register. More... | |
static const Register | BH () |
Factory method for a register. More... | |
static const Register | DIL () |
Factory method for a register. More... | |
static const Register | DI () |
Factory method for a register. More... | |
static const Register | EDI () |
Factory method for a register. More... | |
static const Register | RDI () |
Factory method for a register. More... | |
static const Register | MM7 () |
Factory method for a register. More... | |
static const Register | XMM7 () |
Factory method for a register. More... | |
static const Register | YMM7 () |
Factory method for a register. More... | |
static const Register | R8L () |
Factory method for a register. More... | |
static const Register | R8W () |
Factory method for a register. More... | |
static const Register | R8D () |
Factory method for a register. More... | |
static const Register | R8 () |
Factory method for a register. More... | |
static const Register | XMM8 () |
Factory method for a register. More... | |
static const Register | YMM8 () |
Factory method for a register. More... | |
static const Register | R9L () |
Factory method for a register. More... | |
static const Register | R9W () |
Factory method for a register. More... | |
static const Register | R9D () |
Factory method for a register. More... | |
static const Register | R9 () |
Factory method for a register. More... | |
static const Register | XMM9 () |
Factory method for a register. More... | |
static const Register | YMM9 () |
Factory method for a register. More... | |
static const Register | R10L () |
Factory method for a register. More... | |
static const Register | R10W () |
Factory method for a register. More... | |
static const Register | R10D () |
Factory method for a register. More... | |
static const Register | R10 () |
Factory method for a register. More... | |
static const Register | XMM10 () |
Factory method for a register. More... | |
static const Register | YMM10 () |
Factory method for a register. More... | |
static const Register | R11L () |
Factory method for a register. More... | |
static const Register | R11W () |
Factory method for a register. More... | |
static const Register | R11D () |
Factory method for a register. More... | |
static const Register | R11 () |
Factory method for a register. More... | |
static const Register | XMM11 () |
Factory method for a register. More... | |
static const Register | YMM11 () |
Factory method for a register. More... | |
static const Register | R12L () |
Factory method for a register. More... | |
static const Register | R12W () |
Factory method for a register. More... | |
static const Register | R12D () |
Factory method for a register. More... | |
static const Register | R12 () |
Factory method for a register. More... | |
static const Register | XMM12 () |
Factory method for a register. More... | |
static const Register | YMM12 () |
Factory method for a register. More... | |
static const Register | R13L () |
Factory method for a register. More... | |
static const Register | R13W () |
Factory method for a register. More... | |
static const Register | R13D () |
Factory method for a register. More... | |
static const Register | R13 () |
Factory method for a register. More... | |
static const Register | XMM13 () |
Factory method for a register. More... | |
static const Register | YMM13 () |
Factory method for a register. More... | |
static const Register | R14L () |
Factory method for a register. More... | |
static const Register | R14W () |
Factory method for a register. More... | |
static const Register | R14D () |
Factory method for a register. More... | |
static const Register | R14 () |
Factory method for a register. More... | |
static const Register | XMM14 () |
Factory method for a register. More... | |
static const Register | YMM14 () |
Factory method for a register. More... | |
static const Register | R15L () |
Factory method for a register. More... | |
static const Register | R15W () |
Factory method for a register. More... | |
static const Register | R15D () |
Factory method for a register. More... | |
static const Register | R15 () |
Factory method for a register. More... | |
static const Register | XMM15 () |
Factory method for a register. More... | |
static const Register | YMM15 () |
Factory method for a register. More... | |
static const Register | ES () |
Factory method for a register. More... | |
static const Register | CS () |
Factory method for a register. More... | |
static const Register | SS () |
Factory method for a register. More... | |
static const Register | DS () |
Factory method for a register. More... | |
static const Register | FS () |
Factory method for a register. More... | |
static const Register | GS () |
Factory method for a register. More... | |
static const Register | ST0 () |
Factory method for a register. More... | |
static const Register | ST1 () |
Factory method for a register. More... | |
static const Register | ST2 () |
Factory method for a register. More... | |
static const Register | ST3 () |
Factory method for a register. More... | |
static const Register | ST4 () |
Factory method for a register. More... | |
static const Register | ST5 () |
Factory method for a register. More... | |
static const Register | ST6 () |
Factory method for a register. More... | |
static const Register | ST7 () |
Factory method for a register. More... | |
static const Register | CR0 () |
Factory method for a register. More... | |
static const Register | CR2 () |
Factory method for a register. More... | |
static const Register | CR3 () |
Factory method for a register. More... | |
static const Register | CR4 () |
Factory method for a register. More... | |
static const Register | CR8 () |
Factory method for a register. More... | |
static const Register | DR0 () |
Factory method for a register. More... | |
static const Register | DR1 () |
Factory method for a register. More... | |
static const Register | DR2 () |
Factory method for a register. More... | |
static const Register | DR3 () |
Factory method for a register. More... | |
static const Register | DR4 () |
Factory method for a register. More... | |
static const Register | DR5 () |
Factory method for a register. More... | |
static const Register | DR6 () |
Factory method for a register. More... | |
static const Register | DR7 () |
Factory method for a register. More... | |
static const Register | IP () |
Factory method for a register. More... | |
static const Register | EIP () |
Factory method for a register. More... | |
static const Register | RIP () |
Factory method for a register. More... | |
x86 - 64 register representation.
Register types.
Enumerator | |
---|---|
REG_UNDEFINED |
Undefined register type. |
REG_GPR |
General purpose register. |
REG_SIMD |
SIMD (SSE, MMX) register. |
REG_FPU |
FPU register. |
REG_SEG |
Segment register. |
REG_CR |
Control register. |
REG_DR |
Debug register. |
REG_IP |
Instruction pointer register. Used for relative RIP addressing. |
|
inline |
Creates an empty register instance.
|
inline |
Creates a register instance for given register structure.
reg | The source register as the FCML structure. |
|
inline |
Creates a register instance for given parameters.
reg | The FCML register number. |
size | The register size. |
type | The register type. |
x64_exp | True if it's a 8-bit general purpose register for REX aware instruction. See manual. |
|
inlinevirtual |
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inline |
Gets the register number.
|
inline |
Gets the register size.
|
inline |
Gets the register type.
|
inline |
Gets true if it's a 8-bit general purpose register for REX aware instruction.
See manual.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inline |
Compares registers.
reg | The source register. |
|
inline |
Compares registers.
reg | The source register. |
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inline |
Sets the register number.
reg | The register number. |
|
inline |
Sets the register size.
size | The register size. |
|
inline |
Sets the register type.
type | The register type. |
|
inline |
Sets x64exp flag, see manual.
x64Exp | The flag value. |
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for an undefined register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.
|
inlinestatic |
Factory method for a register.