Typedefs | |
typedef REGISTER_SET< REG_FirstInRegset, REG_LastInRegset > | LEVEL_CORE::REGSET |
Enumerations | |
enum | LEVEL_BASE::REG { REG_INVALID_ = 0, REG_GR_BASE = REG_RBASE, REG_GR_BASE = REG_GBASE, REG_EDI = REG_GR_BASE, REG_GDI = REG_EDI, REG_ESI, REG_GSI = REG_ESI, REG_EBP, REG_GBP = REG_EBP, REG_ESP, REG_STACK_PTR = REG_ESP, REG_STACK_PTR = REG_GBASE + 12, REG_EBX, REG_GBX = REG_EBX, REG_EDX, REG_GDX = REG_EDX, REG_ECX, REG_GCX = REG_ECX, REG_EAX, REG_GAX = REG_EAX, REG_GR_LAST = REG_EAX, REG_GR_LAST = REG_GROT_LAST, REG_SEG_BASE, REG_SEG_CS = REG_SEG_BASE, REG_SEG_SS, REG_SEG_DS, REG_SEG_ES, REG_SEG_FS, REG_SEG_GS, REG_SEG_LAST = REG_SEG_GS, REG_EFLAGS, REG_GFLAGS = REG_EFLAGS, REG_EIP, REG_INST_PTR = REG_EIP, REG_INST_PTR, REG_AL, REG_AH, REG_AX, REG_CL, REG_CH, REG_CX, REG_DL, REG_DH, REG_DX, REG_BL, REG_BH, REG_BX, REG_BP, REG_SI, REG_DI, REG_SP, REG_FLAGS, REG_IP, REG_MM_BASE, REG_MM0 = REG_MM_BASE, REG_MM1, REG_MM2, REG_MM3, REG_MM4, REG_MM5, REG_MM6, REG_MM7, REG_MM_LAST = REG_MM7, REG_EMM_BASE, REG_EMM0 = REG_EMM_BASE, REG_EMM1, REG_EMM2, REG_EMM3, REG_EMM4, REG_EMM5, REG_EMM6, REG_EMM7, REG_EMM_LAST = REG_EMM7, REG_MXT, REG_X87, REG_XMM_BASE, REG_FIRST_FP_REG = REG_XMM_BASE, REG_XMM0 = REG_XMM_BASE, REG_XMM1, REG_XMM2, REG_XMM3, REG_XMM4, REG_XMM5, REG_XMM6, REG_XMM7, REG_XMM_LAST = REG_XMM7, REG_YMM_BASE, REG_YMM0 = REG_YMM_BASE, REG_YMM1, REG_YMM2, REG_YMM3, REG_YMM4, REG_YMM5, REG_YMM6, REG_YMM7, REG_YMM_LAST = REG_YMM7, REG_MXCSR, REG_MXCSRMASK, REG_ORIG_EAX, REG_ORIG_GAX = REG_ORIG_EAX, REG_DR_BASE, REG_DR0 = REG_DR_BASE, REG_DR1, REG_DR2, REG_DR3, REG_DR4, REG_DR5, REG_DR6, REG_DR7, REG_DR_LAST = REG_DR7, REG_CR_BASE, REG_CR0 = REG_CR_BASE, REG_CR1, REG_CR2, REG_CR3, REG_CR4, REG_CR_LAST = REG_CR4, REG_TSSR, REG_LDTR, REG_TR_BASE, REG_TR = REG_TR_BASE, REG_TR3, REG_TR4, REG_TR5, REG_TR6, REG_TR7, REG_TR_LAST = REG_TR7, REG_FPST_BASE, REG_FPSTATUS_BASE = REG_FPST_BASE, REG_FPCW = REG_FPSTATUS_BASE, REG_FPSW, LEVEL_BASE::REG_FPTAG, REG_FPIP_OFF, REG_FPIP_SEL, REG_FPOPCODE, REG_FPDP_OFF, REG_FPDP_SEL, REG_FPSTATUS_LAST = REG_FPDP_SEL, LEVEL_BASE::REG_FPTAG_FULL, REG_ST_BASE, REG_ST0 = REG_ST_BASE, REG_ST1, REG_ST2, REG_ST3, REG_ST4, REG_ST5, REG_ST6, REG_ST7, REG_ST_LAST = REG_ST7, REG_FPST_LAST = REG_ST_LAST, LEVEL_BASE::REG_SEG_GS_BASE, LEVEL_BASE::REG_SEG_FS_BASE, REG_INST_BASE, REG_INST_BASE, LEVEL_BASE::REG_INST_SCRATCH_BASE = REG_INST_BASE, REG_INST_SCRATCH_BASE = REG_INST_BASE, LEVEL_BASE::REG_INST_G0 = REG_INST_SCRATCH_BASE, REG_INST_G0 = REG_INST_SCRATCH_BASE, LEVEL_BASE::REG_INST_G1, REG_INST_G1, LEVEL_BASE::REG_INST_G2, REG_INST_G2, LEVEL_BASE::REG_INST_G3, REG_INST_G3, LEVEL_BASE::REG_INST_G4, REG_INST_G4, LEVEL_BASE::REG_INST_G5, REG_INST_G5, LEVEL_BASE::REG_INST_G6, REG_INST_G6, LEVEL_BASE::REG_INST_G7, REG_INST_G7, LEVEL_BASE::REG_INST_G8, REG_INST_G8, LEVEL_BASE::REG_INST_G9, REG_INST_G9, LEVEL_BASE::REG_INST_G10, LEVEL_BASE::REG_INST_G11, LEVEL_BASE::REG_INST_G12, LEVEL_BASE::REG_INST_G13, LEVEL_BASE::REG_INST_G14, LEVEL_BASE::REG_INST_G15, LEVEL_BASE::REG_INST_G16, LEVEL_BASE::REG_INST_G17, LEVEL_BASE::REG_INST_G18, LEVEL_BASE::REG_INST_G19, REG_INST_TOOL_FIRST = REG_INST_G0, REG_INST_TOOL_FIRST = REG_INST_G0, REG_INST_TOOL_LAST = REG_INST_G19, REG_INST_TOOL_LAST = REG_INST_G9, REG_BUF_BASE0, REG_BUF_BASE1, REG_BUF_BASE2, REG_BUF_BASE3, REG_BUF_BASE4, REG_BUF_BASE5, REG_BUF_BASE6, REG_BUF_BASE7, REG_BUF_BASE8, REG_BUF_BASE9, REG_BUF_LAST = REG_BUF_BASE9, REG_BUF_END0, REG_BUF_END1, REG_BUF_END2, REG_BUF_END3, REG_BUF_END4, REG_BUF_END5, REG_BUF_END6, REG_BUF_END7, REG_BUF_END8, REG_BUF_END9, REG_BUF_ENDLAST = REG_BUF_END9, REG_INST_SCRATCH_LAST = REG_BUF_ENDLAST, REG_INST_SCRATCH_LAST = REG_INST_G9, REG_LAST, REG_LAST } |
enum | LEVEL_BASE::REGNAME { REGNAME_LAST, REGNAME_LAST } |
Functions | |
BOOL | LEVEL_BASE::REG_is_fr_for_get_context (REG reg) |
BOOL | LEVEL_BASE::REG_is_fr_or_x87 (REG reg) |
BOOL | LEVEL_BASE::REG_is_mxcsr (REG reg) |
BOOL | LEVEL_BASE::REG_is_mm (REG reg) |
BOOL | LEVEL_BASE::REG_is_xmm (REG reg) |
BOOL | LEVEL_BASE::REG_is_ymm (REG reg) |
REG | LEVEL_BASE::REG_corresponding_ymm_reg (REG reg) |
BOOL | LEVEL_BASE::REG_is_Half16 (const REG reg) |
BOOL | LEVEL_BASE::REG_is_Half32 (const REG reg) |
BOOL | LEVEL_BASE::REG_is_Lower8 (const REG reg) |
BOOL | LEVEL_BASE::REG_is_Upper8 (const REG reg) |
BOOL | LEVEL_BASE::REG_is_partialreg (const REG reg) |
VOID | LEVEL_BASE::SanityCheckPartialRegisters () |
BOOL | LEVEL_CORE::REGSET_Contains (const REGSET ®set, REG reg) |
VOID | LEVEL_CORE::REGSET_Insert (REGSET ®set, REG reg) |
VOID | LEVEL_CORE::REGSET_Remove (REGSET ®set, REG reg) |
VOID | LEVEL_CORE::REGSET_Clear (REGSET ®set) |
VOID | LEVEL_CORE::REGSET_AddAll (REGSET ®set) |
REG | LEVEL_CORE::REGSET_PopNext (REGSET ®set) |
UINT32 | LEVEL_CORE::REGSET_PopCount (const REGSET ®set) |
BOOL | LEVEL_CORE::REGSET_PopCountIsZero (const REGSET ®set) |
string | LEVEL_CORE::REGSET_StringShort (const REGSET ®set) |
string | LEVEL_CORE::REGSET_StringList (const REGSET ®set) |
Variables | |
GLOBALCONST REG | LEVEL_CORE::REG_FirstInRegset = REG_RBASE |
GLOBALCONST REG | LEVEL_CORE::REG_LastInRegset = REG(REG_LAST-1) |
|
A regset type that contains all registers |
|
|
x |
|
|
|
|
|
|
|
Return TRUE if reg is a lower 16-bit register |
|
Return TRUE if reg is a lower 32-bit register |
|
Return TRUE if reg is a lower 8-bit register |
|
|
|
|
|
Return TRUE if reg is a partial register |
|
Return TRUE if reg is a upper 8-bit register |
|
|
|
|
|
Insert all registers into the specified regset |
|
Remove all registers from the specified regset |
|
|
|
Insert the specified reg into the specified regset |
|
|
|
|
|
Pop the next register from the specified regset
|
|
Remove the specified reg from the specified regset |
|
|
|
|
|
Ensure that we don't re-create Mantis 1903, where a register was short but not partial. This function checks that the partial register information is internally consistent. It is called when we have the -slow_asserts flag. |
|
REG represented by the first bit in the regset vector.
|
|
REG represented by the last bit in the regset vector. Most of the code assumes that REG_LAST is not an actual register, so we should not include it in the set. We use REG_LAST-1 for the last registers. |