From 5155b8fa196ddf057945eac6891a91491b053cd3 Mon Sep 17 00:00:00 2001 From: Jason Hiser <jdhiser@gmail.com> Date: Sun, 3 Feb 2019 12:07:43 -0500 Subject: [PATCH] adding irdb-deep to irdb-sdk Former-commit-id: 62b1c78a41e0436d450a8c86a72380f7f1d68ac7 --- libMEDSannotation/SConscript | 1 + .../include/MEDS_FuncPrototypeAnnotation.hpp | 4 +- libMEDSannotation/include/MEDS_Register.hpp | 25 +- .../src/MEDS_FPTRShadowAnnotation.cpp | 6 +- .../src/MEDS_InstructionCheckAnnotation.cpp | 4 +- libMEDSannotation/src/MEDS_Register.cpp | 708 +++++++++--------- 6 files changed, 378 insertions(+), 370 deletions(-) diff --git a/libMEDSannotation/SConscript b/libMEDSannotation/SConscript index 8ca4d129e..cb89f07ae 100644 --- a/libMEDSannotation/SConscript +++ b/libMEDSannotation/SConscript @@ -22,6 +22,7 @@ files= ''' ''' cpppath=''' ./include/ + $IRDB_SDK/include/ ''' #CFLAGS="-fPIC " diff --git a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp index bfb5df579..4e94a0200 100644 --- a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp +++ b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp @@ -63,8 +63,8 @@ typedef enum { // wrapper class around MEDS typing system class MEDS_Arg { public: - MEDS_Arg() { m_type = MEDS_TYPE_UNKNOWN; m_reg = rn_UNKNOWN; } - MEDS_Arg(int p_type, RegisterName p_reg = rn_UNKNOWN) { m_type = (MEDS_ArgType) p_type; m_reg = p_reg; } + MEDS_Arg() { m_type = MEDS_TYPE_UNKNOWN; m_reg = IRDB_SDK::rn_UNKNOWN; } + MEDS_Arg(int p_type, RegisterName p_reg = IRDB_SDK::rn_UNKNOWN) { m_type = (MEDS_ArgType) p_type; m_reg = p_reg; } virtual ~MEDS_Arg() {} bool isNumericType() { return m_type == MEDS_TYPE_NUMERIC; } bool isPointerType() { diff --git a/libMEDSannotation/include/MEDS_Register.hpp b/libMEDSannotation/include/MEDS_Register.hpp index 3339850be..ae0ad88d9 100644 --- a/libMEDSannotation/include/MEDS_Register.hpp +++ b/libMEDSannotation/include/MEDS_Register.hpp @@ -23,25 +23,32 @@ #include <string> #include <set> +#include <irdb-util> namespace MEDS_Annotation { - +#if 0 enum RegisterName { - rn_UNKNOWN, - rn_EFLAGS, - rn_RIP, - rn_EAX, rn_EBX, rn_ECX, rn_EDX, rn_ESI, rn_EDI, rn_EBP, rn_ESP, rn_R8D, rn_R9D, rn_R10D, rn_R11D, rn_R12D, rn_R13D, rn_R14D, rn_R15D, - rn_RAX, rn_RBX, rn_RCX, rn_RDX, rn_RBP, rn_RSP, rn_RSI, rn_RDI, rn_R8, rn_R9, rn_R10, rn_R11, rn_R12, rn_R13, rn_R14, rn_R15, - rn_AX, rn_BX, rn_CX, rn_DX, rn_BP, rn_SP, rn_SI, rn_DI, rn_R8W, rn_R9W, rn_R10W, rn_R11W, rn_R12W, rn_R13W, rn_R14W, rn_R15W, - rn_AH, rn_BH, rn_CH, rn_DH, rn_SIH, rn_DIH, rn_BPH, rn_SPH, /* 'H' versions of regs only exist for lower 8 regs */ - rn_AL, rn_BL, rn_CL, rn_DL, rn_SIL, rn_DIL, rn_BPL, rn_SPL, rn_R8B, rn_R9B, rn_R10B, rn_R11B, rn_R12B, rn_R13B, rn_R14B, rn_R15B, + IRDB_SDK::rn_UNKNOWN, + IRDB_SDK::rn_EFLAGS, + IRDB_SDK::rn_RIP, + IRDB_SDK::rn_EAX, IRDB_SDK::rn_EBX, IRDB_SDK::rn_ECX, IRDB_SDK::rn_EDX, IRDB_SDK::rn_ESI, IRDB_SDK::rn_EDI, IRDB_SDK::rn_EBP, IRDB_SDK::rn_ESP, IRDB_SDK::rn_R8D, IRDB_SDK::rn_R9D, IRDB_SDK::rn_R10D, IRDB_SDK::rn_R11D, IRDB_SDK::rn_R12D, IRDB_SDK::rn_R13D, IRDB_SDK::rn_R14D, IRDB_SDK::rn_R15D, + IRDB_SDK::rn_RAX, IRDB_SDK::rn_RBX, IRDB_SDK::rn_RCX, IRDB_SDK::rn_RDX, IRDB_SDK::rn_RBP, IRDB_SDK::rn_RSP, IRDB_SDK::rn_RSI, IRDB_SDK::rn_RDI, IRDB_SDK::rn_R8, IRDB_SDK::rn_R9, IRDB_SDK::rn_R10, IRDB_SDK::rn_R11, IRDB_SDK::rn_R12, IRDB_SDK::rn_R13, IRDB_SDK::rn_R14, IRDB_SDK::rn_R15, + IRDB_SDK::rn_AX, IRDB_SDK::rn_BX, IRDB_SDK::rn_CX, IRDB_SDK::rn_DX, IRDB_SDK::rn_BP, IRDB_SDK::rn_SP, IRDB_SDK::rn_SI, IRDB_SDK::rn_DI, IRDB_SDK::rn_R8W, IRDB_SDK::rn_R9W, IRDB_SDK::rn_R10W, IRDB_SDK::rn_R11W, IRDB_SDK::rn_R12W, IRDB_SDK::rn_R13W, IRDB_SDK::rn_R14W, IRDB_SDK::rn_R15W, + IRDB_SDK::rn_AH, IRDB_SDK::rn_BH, IRDB_SDK::rn_CH, IRDB_SDK::rn_DH, IRDB_SDK::rn_SIH, IRDB_SDK::rn_DIH, IRDB_SDK::rn_BPH, IRDB_SDK::rn_SPH, /* 'H' versions of regs only exist for lower 8 regs */ + IRDB_SDK::rn_AL, IRDB_SDK::rn_BL, IRDB_SDK::rn_CL, IRDB_SDK::rn_DL, IRDB_SDK::rn_SIL, IRDB_SDK::rn_DIL, IRDB_SDK::rn_BPL, IRDB_SDK::rn_SPL, IRDB_SDK::rn_R8B, IRDB_SDK::rn_R9B, IRDB_SDK::rn_R10B, IRDB_SDK::rn_R11B, IRDB_SDK::rn_R12B, IRDB_SDK::rn_R13B, IRDB_SDK::rn_R14B, IRDB_SDK::rn_R15B, }; typedef std::set<RegisterName> RegisterSet_t; +#endif +using RegisterName = IRDB_SDK::RegisterID; +using RegisterName_t = IRDB_SDK::RegisterID_t; +using RegisterSet_t = std::set<RegisterName_t>; + + class Register diff --git a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp index e0f8ad4b5..017efc30d 100644 --- a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp +++ b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp @@ -189,7 +189,7 @@ long long MEDS_FPTRShadowAnnotation::getConstantValue(bool &p_valid) const // 80822cc 3 INSTR FPTRSHADOW EAX SHADOWID 6 bool MEDS_FPTRShadowAnnotation::isRegister() const { - return Register::getRegister(getExpression()) != rn_UNKNOWN; + return Register::getRegister(getExpression()) != IRDB_SDK::rn_UNKNOWN; } // 805829d 3 INSTR FPTRCHECK [EBP-40] SHADOWID 5 @@ -207,7 +207,7 @@ const RegisterName MEDS_FPTRShadowAnnotation::getRegister() const } else { - return rn_UNKNOWN; + return IRDB_SDK::rn_UNKNOWN; } } @@ -226,7 +226,7 @@ uintptr_t MEDS_FPTRShadowAnnotation::computeRIPAddress() parseRegister(getExpression().c_str(), ®, &offset); - if (reg == rn_RIP) + if (reg == IRDB_SDK::rn_RIP) { return getVirtualOffset().getOffset() + getInstructionSize() + offset; } diff --git a/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp b/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp index cbb505f27..719ebb5f7 100644 --- a/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp +++ b/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp @@ -64,8 +64,8 @@ void MEDS_InstructionCheckAnnotation::init() m_bitWidth = -1; m_truncationFromWidth = -1; m_truncationToWidth = -1; - m_register = rn_UNKNOWN; - m_register2 = rn_UNKNOWN; + m_register = IRDB_SDK::rn_UNKNOWN; + m_register2 = IRDB_SDK::rn_UNKNOWN; m_stackOffset = -1; m_objectSize = -1; m_isEspOffset = false; diff --git a/libMEDSannotation/src/MEDS_Register.cpp b/libMEDSannotation/src/MEDS_Register.cpp index 57aab2f4b..36741f094 100644 --- a/libMEDSannotation/src/MEDS_Register.cpp +++ b/libMEDSannotation/src/MEDS_Register.cpp @@ -35,7 +35,7 @@ RegisterName Register::getRegister(char *p_reg) bool Register::isValidRegister(std::string p_reg) { - return getRegister(p_reg) != rn_UNKNOWN; + return getRegister(p_reg) != IRDB_SDK::rn_UNKNOWN; } bool Register::isValidRegister(const RegisterName p_reg) @@ -46,263 +46,263 @@ bool Register::isValidRegister(const RegisterName p_reg) RegisterName Register::getRegister(std::string p_reg) { if (strcasecmp(p_reg.c_str(), "EFLAGS") ==0) - return rn_EFLAGS; + return IRDB_SDK::rn_EFLAGS; else if (strcasecmp(p_reg.c_str(), "RAX") == 0) - return rn_RAX; + return IRDB_SDK::rn_RAX; else if (strcasecmp(p_reg.c_str(), "RBX") == 0) - return rn_RBX; + return IRDB_SDK::rn_RBX; else if (strcasecmp(p_reg.c_str(), "RCX") == 0) - return rn_RCX; + return IRDB_SDK::rn_RCX; else if (strcasecmp(p_reg.c_str(), "RDX") == 0) - return rn_RDX; + return IRDB_SDK::rn_RDX; else if (strcasecmp(p_reg.c_str(), "RSI") == 0) - return rn_RSI; + return IRDB_SDK::rn_RSI; else if (strcasecmp(p_reg.c_str(), "RDI") == 0) - return rn_RDI; + return IRDB_SDK::rn_RDI; else if (strcasecmp(p_reg.c_str(), "RBP") == 0) - return rn_RBP; + return IRDB_SDK::rn_RBP; else if (strcasecmp(p_reg.c_str(), "RSP") == 0) - return rn_RSP; + return IRDB_SDK::rn_RSP; else if (strcasecmp(p_reg.c_str(), "R8") == 0) - return rn_R8; + return IRDB_SDK::rn_R8; else if (strcasecmp(p_reg.c_str(), "R9") == 0) - return rn_R9; + return IRDB_SDK::rn_R9; else if (strcasecmp(p_reg.c_str(), "R10") == 0) - return rn_R10; + return IRDB_SDK::rn_R10; else if (strcasecmp(p_reg.c_str(), "R11") == 0) - return rn_R11; + return IRDB_SDK::rn_R11; else if (strcasecmp(p_reg.c_str(), "R12") == 0) - return rn_R12; + return IRDB_SDK::rn_R12; else if (strcasecmp(p_reg.c_str(), "R13") == 0) - return rn_R13; + return IRDB_SDK::rn_R13; else if (strcasecmp(p_reg.c_str(), "R14") == 0) - return rn_R14; + return IRDB_SDK::rn_R14; else if (strcasecmp(p_reg.c_str(), "R15") == 0) - return rn_R15; + return IRDB_SDK::rn_R15; else if (strcasecmp(p_reg.c_str(), "RIP") == 0) - return rn_RIP; + return IRDB_SDK::rn_RIP; else if (strcasecmp(p_reg.c_str(), "EAX") == 0) - return rn_EAX; + return IRDB_SDK::rn_EAX; else if (strcasecmp(p_reg.c_str(), "EBX") == 0) - return rn_EBX; + return IRDB_SDK::rn_EBX; else if (strcasecmp(p_reg.c_str(), "ECX") == 0) - return rn_ECX; + return IRDB_SDK::rn_ECX; else if (strcasecmp(p_reg.c_str(), "EDX") == 0) - return rn_EDX; + return IRDB_SDK::rn_EDX; else if (strcasecmp(p_reg.c_str(), "ESI") == 0) - return rn_ESI; + return IRDB_SDK::rn_ESI; else if (strcasecmp(p_reg.c_str(), "EDI") == 0) - return rn_EDI; + return IRDB_SDK::rn_EDI; else if (strcasecmp(p_reg.c_str(), "EBP") == 0) - return rn_EBP; + return IRDB_SDK::rn_EBP; else if (strcasecmp(p_reg.c_str(), "ESP") == 0) - return rn_ESP; + return IRDB_SDK::rn_ESP; else if (strcasecmp(p_reg.c_str(), "R8D") == 0) - return rn_R8D; + return IRDB_SDK::rn_R8D; else if (strcasecmp(p_reg.c_str(), "R9D") == 0) - return rn_R9D; + return IRDB_SDK::rn_R9D; else if (strcasecmp(p_reg.c_str(), "R10D") == 0) - return rn_R10D; + return IRDB_SDK::rn_R10D; else if (strcasecmp(p_reg.c_str(), "R11D") == 0) - return rn_R11D; + return IRDB_SDK::rn_R11D; else if (strcasecmp(p_reg.c_str(), "R12D") == 0) - return rn_R12D; + return IRDB_SDK::rn_R12D; else if (strcasecmp(p_reg.c_str(), "R13D") == 0) - return rn_R13D; + return IRDB_SDK::rn_R13D; else if (strcasecmp(p_reg.c_str(), "R14D") == 0) - return rn_R14D; + return IRDB_SDK::rn_R14D; else if (strcasecmp(p_reg.c_str(), "R15D") == 0) - return rn_R15D; + return IRDB_SDK::rn_R15D; else if (strcasecmp(p_reg.c_str(), "AX") == 0) - return rn_AX; + return IRDB_SDK::rn_AX; else if (strcasecmp(p_reg.c_str(), "BX") == 0) - return rn_BX; + return IRDB_SDK::rn_BX; else if (strcasecmp(p_reg.c_str(), "CX") == 0) - return rn_CX; + return IRDB_SDK::rn_CX; else if (strcasecmp(p_reg.c_str(), "DX") == 0) - return rn_DX; + return IRDB_SDK::rn_DX; else if (strcasecmp(p_reg.c_str(), "BP") == 0) - return rn_BP; + return IRDB_SDK::rn_BP; else if (strcasecmp(p_reg.c_str(), "SP") == 0) - return rn_SP; + return IRDB_SDK::rn_SP; else if (strcasecmp(p_reg.c_str(), "SI") == 0) - return rn_SI; + return IRDB_SDK::rn_SI; else if (strcasecmp(p_reg.c_str(), "DI") == 0) - return rn_DI; + return IRDB_SDK::rn_DI; else if (strcasecmp(p_reg.c_str(), "R8W") == 0) - return rn_R8W; + return IRDB_SDK::rn_R8W; else if (strcasecmp(p_reg.c_str(), "R9W") == 0) - return rn_R9W; + return IRDB_SDK::rn_R9W; else if (strcasecmp(p_reg.c_str(), "R10W") == 0) - return rn_R10W; + return IRDB_SDK::rn_R10W; else if (strcasecmp(p_reg.c_str(), "R11W") == 0) - return rn_R11W; + return IRDB_SDK::rn_R11W; else if (strcasecmp(p_reg.c_str(), "R12W") == 0) - return rn_R12W; + return IRDB_SDK::rn_R12W; else if (strcasecmp(p_reg.c_str(), "R13W") == 0) - return rn_R13W; + return IRDB_SDK::rn_R13W; else if (strcasecmp(p_reg.c_str(), "R14W") == 0) - return rn_R14W; + return IRDB_SDK::rn_R14W; else if (strcasecmp(p_reg.c_str(), "R15W") == 0) - return rn_R15W; + return IRDB_SDK::rn_R15W; else if (strcasecmp(p_reg.c_str(), "AH") == 0) - return rn_AL; + return IRDB_SDK::rn_AL; else if (strcasecmp(p_reg.c_str(), "BH") == 0) - return rn_BL; + return IRDB_SDK::rn_BL; else if (strcasecmp(p_reg.c_str(), "CH") == 0) - return rn_CL; + return IRDB_SDK::rn_CL; else if (strcasecmp(p_reg.c_str(), "DH") == 0) - return rn_DL; + return IRDB_SDK::rn_DL; else if (strcasecmp(p_reg.c_str(), "AL") == 0) - return rn_AL; + return IRDB_SDK::rn_AL; else if (strcasecmp(p_reg.c_str(), "BL") == 0) - return rn_BL; + return IRDB_SDK::rn_BL; else if (strcasecmp(p_reg.c_str(), "CL") == 0) - return rn_CL; + return IRDB_SDK::rn_CL; else if (strcasecmp(p_reg.c_str(), "DL") == 0) - return rn_DL; + return IRDB_SDK::rn_DL; else if (strcasecmp(p_reg.c_str(), "SIL") == 0) - return rn_SIL; + return IRDB_SDK::rn_SIL; else if (strcasecmp(p_reg.c_str(), "DIL") == 0) - return rn_DIL; + return IRDB_SDK::rn_DIL; else if (strcasecmp(p_reg.c_str(), "BPL") == 0) - return rn_BPL; + return IRDB_SDK::rn_BPL; else if (strcasecmp(p_reg.c_str(), "SPL") == 0) - return rn_SPL; + return IRDB_SDK::rn_SPL; else if (strcasecmp(p_reg.c_str(), "R8B") == 0) - return rn_R8B; + return IRDB_SDK::rn_R8B; else if (strcasecmp(p_reg.c_str(), "R9B") == 0) - return rn_R9B; + return IRDB_SDK::rn_R9B; else if (strcasecmp(p_reg.c_str(), "R10B") == 0) - return rn_R10B; + return IRDB_SDK::rn_R10B; else if (strcasecmp(p_reg.c_str(), "R11B") == 0) - return rn_R11B; + return IRDB_SDK::rn_R11B; else if (strcasecmp(p_reg.c_str(), "R12B") == 0) - return rn_R12B; + return IRDB_SDK::rn_R12B; else if (strcasecmp(p_reg.c_str(), "R13B") == 0) - return rn_R13B; + return IRDB_SDK::rn_R13B; else if (strcasecmp(p_reg.c_str(), "R14B") == 0) - return rn_R14B; + return IRDB_SDK::rn_R14B; else if (strcasecmp(p_reg.c_str(), "R15B") == 0) - return rn_R15B; + return IRDB_SDK::rn_R15B; else - return rn_UNKNOWN; + return IRDB_SDK::rn_UNKNOWN; } bool Register::is8bit(RegisterName p_reg) { - return p_reg == rn_AL || p_reg == rn_BL || p_reg == rn_CL || p_reg == rn_DL || - p_reg == rn_AH || p_reg == rn_BH || p_reg == rn_CH || p_reg == rn_DH || - p_reg == rn_SIL || p_reg == rn_DIL || p_reg == rn_BPL || p_reg == rn_SPL || - p_reg == rn_R8B || p_reg == rn_R9B || p_reg == rn_R10B || p_reg == rn_R11B || - p_reg == rn_R12B || p_reg == rn_R13B || p_reg == rn_R14B || p_reg == rn_R15B; + return p_reg == IRDB_SDK::rn_AL || p_reg == IRDB_SDK::rn_BL || p_reg == IRDB_SDK::rn_CL || p_reg == IRDB_SDK::rn_DL || + p_reg == IRDB_SDK::rn_AH || p_reg == IRDB_SDK::rn_BH || p_reg == IRDB_SDK::rn_CH || p_reg == IRDB_SDK::rn_DH || + p_reg == IRDB_SDK::rn_SIL || p_reg == IRDB_SDK::rn_DIL || p_reg == IRDB_SDK::rn_BPL || p_reg == IRDB_SDK::rn_SPL || + p_reg == IRDB_SDK::rn_R8B || p_reg == IRDB_SDK::rn_R9B || p_reg == IRDB_SDK::rn_R10B || p_reg == IRDB_SDK::rn_R11B || + p_reg == IRDB_SDK::rn_R12B || p_reg == IRDB_SDK::rn_R13B || p_reg == IRDB_SDK::rn_R14B || p_reg == IRDB_SDK::rn_R15B; } bool Register::is16bit(RegisterName p_reg) { - return p_reg == rn_AX || p_reg == rn_BX || p_reg == rn_CX || p_reg == rn_DX || - p_reg == rn_BP || p_reg == rn_SP || p_reg == rn_SI || p_reg == rn_DI || - p_reg == rn_R8W || p_reg == rn_R9W || p_reg == rn_R10W || p_reg == rn_R11W || - p_reg == rn_R12W || p_reg == rn_R13W || p_reg == rn_R14W || p_reg == rn_R15W; + return p_reg == IRDB_SDK::rn_AX || p_reg == IRDB_SDK::rn_BX || p_reg == IRDB_SDK::rn_CX || p_reg == IRDB_SDK::rn_DX || + p_reg == IRDB_SDK::rn_BP || p_reg == IRDB_SDK::rn_SP || p_reg == IRDB_SDK::rn_SI || p_reg == IRDB_SDK::rn_DI || + p_reg == IRDB_SDK::rn_R8W || p_reg == IRDB_SDK::rn_R9W || p_reg == IRDB_SDK::rn_R10W || p_reg == IRDB_SDK::rn_R11W || + p_reg == IRDB_SDK::rn_R12W || p_reg == IRDB_SDK::rn_R13W || p_reg == IRDB_SDK::rn_R14W || p_reg == IRDB_SDK::rn_R15W; } bool Register::is32bit(RegisterName p_reg) { - return p_reg == rn_EAX || p_reg == rn_EBX || p_reg == rn_ECX || p_reg == rn_EDX || - p_reg == rn_ESI || p_reg == rn_EDI || p_reg == rn_ESP || p_reg == rn_EBP || - p_reg == rn_R8D || p_reg == rn_R9D || p_reg == rn_R10D || p_reg == rn_R11D || - p_reg == rn_R12D || p_reg == rn_R13D || p_reg == rn_R14D || p_reg == rn_R15D; + return p_reg == IRDB_SDK::rn_EAX || p_reg == IRDB_SDK::rn_EBX || p_reg == IRDB_SDK::rn_ECX || p_reg == IRDB_SDK::rn_EDX || + p_reg == IRDB_SDK::rn_ESI || p_reg == IRDB_SDK::rn_EDI || p_reg == IRDB_SDK::rn_ESP || p_reg == IRDB_SDK::rn_EBP || + p_reg == IRDB_SDK::rn_R8D || p_reg == IRDB_SDK::rn_R9D || p_reg == IRDB_SDK::rn_R10D || p_reg == IRDB_SDK::rn_R11D || + p_reg == IRDB_SDK::rn_R12D || p_reg == IRDB_SDK::rn_R13D || p_reg == IRDB_SDK::rn_R14D || p_reg == IRDB_SDK::rn_R15D; } bool Register::is64bit(RegisterName p_reg) { - return p_reg == rn_RAX || p_reg == rn_RBX || p_reg == rn_RCX || p_reg == rn_RDX || - p_reg == rn_RSI || p_reg == rn_RDI || p_reg == rn_RBP || p_reg == rn_RSP || - p_reg == rn_R8 || p_reg == rn_R9 || p_reg == rn_R10 || p_reg == rn_R11 || - p_reg == rn_R12 || p_reg == rn_R13 || p_reg == rn_R14 || p_reg == rn_R15 || p_reg == rn_RIP; + return p_reg == IRDB_SDK::rn_RAX || p_reg == IRDB_SDK::rn_RBX || p_reg == IRDB_SDK::rn_RCX || p_reg == IRDB_SDK::rn_RDX || + p_reg == IRDB_SDK::rn_RSI || p_reg == IRDB_SDK::rn_RDI || p_reg == IRDB_SDK::rn_RBP || p_reg == IRDB_SDK::rn_RSP || + p_reg == IRDB_SDK::rn_R8 || p_reg == IRDB_SDK::rn_R9 || p_reg == IRDB_SDK::rn_R10 || p_reg == IRDB_SDK::rn_R11 || + p_reg == IRDB_SDK::rn_R12 || p_reg == IRDB_SDK::rn_R13 || p_reg == IRDB_SDK::rn_R14 || p_reg == IRDB_SDK::rn_R15 || p_reg == IRDB_SDK::rn_RIP; } std::string Register::toString(RegisterName p_reg) { - if (p_reg == rn_UNKNOWN) return std::string("UNKNOWN"); - - else if (p_reg == rn_EFLAGS) return std::string("EFLAGS"); - - else if (p_reg == rn_RAX) return std::string("RAX"); - else if (p_reg == rn_RBX) return std::string("RBX"); - else if (p_reg == rn_RCX) return std::string("RCX"); - else if (p_reg == rn_RDX) return std::string("RDX"); - else if (p_reg == rn_RSI) return std::string("RSI"); - else if (p_reg == rn_RDI) return std::string("RDI"); - else if (p_reg == rn_RBP) return std::string("RBP"); - else if (p_reg == rn_RSP) return std::string("RSP"); - else if (p_reg == rn_R8) return std::string("R8"); - else if (p_reg == rn_R9) return std::string("R9"); - else if (p_reg == rn_R10) return std::string("R10"); - else if (p_reg == rn_R11) return std::string("R11"); - else if (p_reg == rn_R12) return std::string("R12"); - else if (p_reg == rn_R13) return std::string("R13"); - else if (p_reg == rn_R14) return std::string("R14"); - else if (p_reg == rn_R15) return std::string("R15"); - else if (p_reg == rn_RIP) return std::string("RIP"); - - else if (p_reg == rn_EAX) return std::string("EAX"); - else if (p_reg == rn_EBX) return std::string("EBX"); - else if (p_reg == rn_ECX) return std::string("ECX"); - else if (p_reg == rn_EDX) return std::string("EDX"); - else if (p_reg == rn_EDI) return std::string("EDI"); - else if (p_reg == rn_ESI) return std::string("ESI"); - else if (p_reg == rn_EBP) return std::string("EBP"); - else if (p_reg == rn_ESP) return std::string("ESP"); - else if (p_reg == rn_R8D) return std::string("R8D"); - else if (p_reg == rn_R9D) return std::string("R9D"); - else if (p_reg == rn_R10D) return std::string("R10D"); - else if (p_reg == rn_R11D) return std::string("R11D"); - else if (p_reg == rn_R12D) return std::string("R12D"); - else if (p_reg == rn_R13D) return std::string("R13D"); - else if (p_reg == rn_R14D) return std::string("R14D"); - else if (p_reg == rn_R15D) return std::string("R15D"); - - else if (p_reg == rn_AX) return std::string("AX"); - else if (p_reg == rn_BX) return std::string("BX"); - else if (p_reg == rn_CX) return std::string("CX"); - else if (p_reg == rn_DX) return std::string("DX"); - else if (p_reg == rn_BP) return std::string("BP"); - else if (p_reg == rn_SP) return std::string("SP"); - else if (p_reg == rn_SI) return std::string("SI"); - else if (p_reg == rn_DI) return std::string("DI"); - else if (p_reg == rn_R8W) return std::string("R8W"); - else if (p_reg == rn_R9W) return std::string("R9W"); - else if (p_reg == rn_R10W) return std::string("R10W"); - else if (p_reg == rn_R11W) return std::string("R11W"); - else if (p_reg == rn_R12W) return std::string("R12W"); - else if (p_reg == rn_R13W) return std::string("R13W"); - else if (p_reg == rn_R14W) return std::string("R14W"); - else if (p_reg == rn_R15W) return std::string("R15W"); - - else if (p_reg == rn_AH) return std::string("AH"); - else if (p_reg == rn_BH) return std::string("BH"); - else if (p_reg == rn_CH) return std::string("CH"); - else if (p_reg == rn_DH) return std::string("DH"); - else if (p_reg == rn_AL) return std::string("AL"); - else if (p_reg == rn_BL) return std::string("BL"); - else if (p_reg == rn_CL) return std::string("CL"); - else if (p_reg == rn_DL) return std::string("DL"); - else if (p_reg == rn_SIL) return std::string("SIL"); - else if (p_reg == rn_DIL) return std::string("DIL"); - else if (p_reg == rn_BPL) return std::string("BPL"); - else if (p_reg == rn_SPL) return std::string("SPL"); - else if (p_reg == rn_R8B) return std::string("R8B"); - else if (p_reg == rn_R9B) return std::string("R9B"); - else if (p_reg == rn_R10B) return std::string("R10B"); - else if (p_reg == rn_R11B) return std::string("R11B"); - else if (p_reg == rn_R12B) return std::string("R12B"); - else if (p_reg == rn_R13B) return std::string("R13B"); - else if (p_reg == rn_R14B) return std::string("R14B"); - else if (p_reg == rn_R15B) return std::string("R15B"); + if (p_reg == IRDB_SDK::rn_UNKNOWN) return std::string("UNKNOWN"); + + else if (p_reg == IRDB_SDK::rn_EFLAGS) return std::string("EFLAGS"); + + else if (p_reg == IRDB_SDK::rn_RAX) return std::string("RAX"); + else if (p_reg == IRDB_SDK::rn_RBX) return std::string("RBX"); + else if (p_reg == IRDB_SDK::rn_RCX) return std::string("RCX"); + else if (p_reg == IRDB_SDK::rn_RDX) return std::string("RDX"); + else if (p_reg == IRDB_SDK::rn_RSI) return std::string("RSI"); + else if (p_reg == IRDB_SDK::rn_RDI) return std::string("RDI"); + else if (p_reg == IRDB_SDK::rn_RBP) return std::string("RBP"); + else if (p_reg == IRDB_SDK::rn_RSP) return std::string("RSP"); + else if (p_reg == IRDB_SDK::rn_R8) return std::string("R8"); + else if (p_reg == IRDB_SDK::rn_R9) return std::string("R9"); + else if (p_reg == IRDB_SDK::rn_R10) return std::string("R10"); + else if (p_reg == IRDB_SDK::rn_R11) return std::string("R11"); + else if (p_reg == IRDB_SDK::rn_R12) return std::string("R12"); + else if (p_reg == IRDB_SDK::rn_R13) return std::string("R13"); + else if (p_reg == IRDB_SDK::rn_R14) return std::string("R14"); + else if (p_reg == IRDB_SDK::rn_R15) return std::string("R15"); + else if (p_reg == IRDB_SDK::rn_RIP) return std::string("RIP"); + + else if (p_reg == IRDB_SDK::rn_EAX) return std::string("EAX"); + else if (p_reg == IRDB_SDK::rn_EBX) return std::string("EBX"); + else if (p_reg == IRDB_SDK::rn_ECX) return std::string("ECX"); + else if (p_reg == IRDB_SDK::rn_EDX) return std::string("EDX"); + else if (p_reg == IRDB_SDK::rn_EDI) return std::string("EDI"); + else if (p_reg == IRDB_SDK::rn_ESI) return std::string("ESI"); + else if (p_reg == IRDB_SDK::rn_EBP) return std::string("EBP"); + else if (p_reg == IRDB_SDK::rn_ESP) return std::string("ESP"); + else if (p_reg == IRDB_SDK::rn_R8D) return std::string("R8D"); + else if (p_reg == IRDB_SDK::rn_R9D) return std::string("R9D"); + else if (p_reg == IRDB_SDK::rn_R10D) return std::string("R10D"); + else if (p_reg == IRDB_SDK::rn_R11D) return std::string("R11D"); + else if (p_reg == IRDB_SDK::rn_R12D) return std::string("R12D"); + else if (p_reg == IRDB_SDK::rn_R13D) return std::string("R13D"); + else if (p_reg == IRDB_SDK::rn_R14D) return std::string("R14D"); + else if (p_reg == IRDB_SDK::rn_R15D) return std::string("R15D"); + + else if (p_reg == IRDB_SDK::rn_AX) return std::string("AX"); + else if (p_reg == IRDB_SDK::rn_BX) return std::string("BX"); + else if (p_reg == IRDB_SDK::rn_CX) return std::string("CX"); + else if (p_reg == IRDB_SDK::rn_DX) return std::string("DX"); + else if (p_reg == IRDB_SDK::rn_BP) return std::string("BP"); + else if (p_reg == IRDB_SDK::rn_SP) return std::string("SP"); + else if (p_reg == IRDB_SDK::rn_SI) return std::string("SI"); + else if (p_reg == IRDB_SDK::rn_DI) return std::string("DI"); + else if (p_reg == IRDB_SDK::rn_R8W) return std::string("R8W"); + else if (p_reg == IRDB_SDK::rn_R9W) return std::string("R9W"); + else if (p_reg == IRDB_SDK::rn_R10W) return std::string("R10W"); + else if (p_reg == IRDB_SDK::rn_R11W) return std::string("R11W"); + else if (p_reg == IRDB_SDK::rn_R12W) return std::string("R12W"); + else if (p_reg == IRDB_SDK::rn_R13W) return std::string("R13W"); + else if (p_reg == IRDB_SDK::rn_R14W) return std::string("R14W"); + else if (p_reg == IRDB_SDK::rn_R15W) return std::string("R15W"); + + else if (p_reg == IRDB_SDK::rn_AH) return std::string("AH"); + else if (p_reg == IRDB_SDK::rn_BH) return std::string("BH"); + else if (p_reg == IRDB_SDK::rn_CH) return std::string("CH"); + else if (p_reg == IRDB_SDK::rn_DH) return std::string("DH"); + else if (p_reg == IRDB_SDK::rn_AL) return std::string("AL"); + else if (p_reg == IRDB_SDK::rn_BL) return std::string("BL"); + else if (p_reg == IRDB_SDK::rn_CL) return std::string("CL"); + else if (p_reg == IRDB_SDK::rn_DL) return std::string("DL"); + else if (p_reg == IRDB_SDK::rn_SIL) return std::string("SIL"); + else if (p_reg == IRDB_SDK::rn_DIL) return std::string("DIL"); + else if (p_reg == IRDB_SDK::rn_BPL) return std::string("BPL"); + else if (p_reg == IRDB_SDK::rn_SPL) return std::string("SPL"); + else if (p_reg == IRDB_SDK::rn_R8B) return std::string("R8B"); + else if (p_reg == IRDB_SDK::rn_R9B) return std::string("R9B"); + else if (p_reg == IRDB_SDK::rn_R10B) return std::string("R10B"); + else if (p_reg == IRDB_SDK::rn_R11B) return std::string("R11B"); + else if (p_reg == IRDB_SDK::rn_R12B) return std::string("R12B"); + else if (p_reg == IRDB_SDK::rn_R13B) return std::string("R13B"); + else if (p_reg == IRDB_SDK::rn_R14B) return std::string("R14B"); + else if (p_reg == IRDB_SDK::rn_R15B) return std::string("R15B"); else return std::string("UNEXPECTED REGISTER VALUE"); } @@ -311,83 +311,83 @@ int Register::getBitWidth(RegisterName p_reg) { switch (p_reg) { - case rn_RAX: - case rn_RBX: - case rn_RCX: - case rn_RDX: - case rn_RSI: - case rn_RDI: - case rn_RBP: - case rn_RSP: - case rn_R8: - case rn_R9: - case rn_R10: - case rn_R11: - case rn_R12: - case rn_R13: - case rn_R14: - case rn_R15: - case rn_RIP: + case IRDB_SDK::rn_RAX: + case IRDB_SDK::rn_RBX: + case IRDB_SDK::rn_RCX: + case IRDB_SDK::rn_RDX: + case IRDB_SDK::rn_RSI: + case IRDB_SDK::rn_RDI: + case IRDB_SDK::rn_RBP: + case IRDB_SDK::rn_RSP: + case IRDB_SDK::rn_R8: + case IRDB_SDK::rn_R9: + case IRDB_SDK::rn_R10: + case IRDB_SDK::rn_R11: + case IRDB_SDK::rn_R12: + case IRDB_SDK::rn_R13: + case IRDB_SDK::rn_R14: + case IRDB_SDK::rn_R15: + case IRDB_SDK::rn_RIP: return 64; break; - case rn_EAX: - case rn_EBX: - case rn_ECX: - case rn_EDX: - case rn_EDI: - case rn_ESI: - case rn_EBP: - case rn_ESP: - case rn_R8D: - case rn_R9D: - case rn_R10D: - case rn_R11D: - case rn_R12D: - case rn_R13D: - case rn_R14D: - case rn_R15D: + case IRDB_SDK::rn_EAX: + case IRDB_SDK::rn_EBX: + case IRDB_SDK::rn_ECX: + case IRDB_SDK::rn_EDX: + case IRDB_SDK::rn_EDI: + case IRDB_SDK::rn_ESI: + case IRDB_SDK::rn_EBP: + case IRDB_SDK::rn_ESP: + case IRDB_SDK::rn_R8D: + case IRDB_SDK::rn_R9D: + case IRDB_SDK::rn_R10D: + case IRDB_SDK::rn_R11D: + case IRDB_SDK::rn_R12D: + case IRDB_SDK::rn_R13D: + case IRDB_SDK::rn_R14D: + case IRDB_SDK::rn_R15D: return 32; break; - case rn_AX: - case rn_BX: - case rn_CX: - case rn_DX: - case rn_BP: - case rn_SP: - case rn_SI: - case rn_DI: - case rn_R8W: - case rn_R9W: - case rn_R10W: - case rn_R11W: - case rn_R12W: - case rn_R13W: - case rn_R14W: - case rn_R15W: + case IRDB_SDK::rn_AX: + case IRDB_SDK::rn_BX: + case IRDB_SDK::rn_CX: + case IRDB_SDK::rn_DX: + case IRDB_SDK::rn_BP: + case IRDB_SDK::rn_SP: + case IRDB_SDK::rn_SI: + case IRDB_SDK::rn_DI: + case IRDB_SDK::rn_R8W: + case IRDB_SDK::rn_R9W: + case IRDB_SDK::rn_R10W: + case IRDB_SDK::rn_R11W: + case IRDB_SDK::rn_R12W: + case IRDB_SDK::rn_R13W: + case IRDB_SDK::rn_R14W: + case IRDB_SDK::rn_R15W: return 16; break; - case rn_AH: - case rn_BH: - case rn_CH: - case rn_DH: - case rn_AL: - case rn_BL: - case rn_CL: - case rn_DL: - case rn_SIL: - case rn_DIL: - case rn_BPL: - case rn_SPL: - case rn_R8B: - case rn_R9B: - case rn_R10B: - case rn_R11B: - case rn_R12B: - case rn_R13B: - case rn_R14B: - case rn_R15B: + case IRDB_SDK::rn_AH: + case IRDB_SDK::rn_BH: + case IRDB_SDK::rn_CH: + case IRDB_SDK::rn_DH: + case IRDB_SDK::rn_AL: + case IRDB_SDK::rn_BL: + case IRDB_SDK::rn_CL: + case IRDB_SDK::rn_DL: + case IRDB_SDK::rn_SIL: + case IRDB_SDK::rn_DIL: + case IRDB_SDK::rn_BPL: + case IRDB_SDK::rn_SPL: + case IRDB_SDK::rn_R8B: + case IRDB_SDK::rn_R9B: + case IRDB_SDK::rn_R10B: + case IRDB_SDK::rn_R11B: + case IRDB_SDK::rn_R12B: + case IRDB_SDK::rn_R13B: + case IRDB_SDK::rn_R14B: + case IRDB_SDK::rn_R15B: return 8; break; @@ -410,23 +410,23 @@ RegisterName Register::getFreeRegister64(const RegisterSet_t& p_taken) if (p_taken.count(a) == 0 && p_taken.count(b) == 0 && p_taken.count(c) == 0 && p_taken.count(d) == 0 && p_taken.count(e)==0) \ return a; \ - ret_if_free4(rn_R8, rn_R8D, rn_R8W, rn_R8B); - ret_if_free4(rn_R9, rn_R9D, rn_R9W, rn_R9B); - ret_if_free4(rn_R10, rn_R10D, rn_R10W, rn_R10B); - ret_if_free4(rn_R11, rn_R11D, rn_R11W, rn_R11B); - ret_if_free4(rn_R12, rn_R12D, rn_R12W, rn_R12B); - ret_if_free4(rn_R13, rn_R13D, rn_R13W, rn_R13B); - ret_if_free4(rn_R14, rn_R14D, rn_R14W, rn_R14B); - ret_if_free4(rn_R15, rn_R15D, rn_R15W, rn_R15B); - ret_if_free5(rn_RAX, rn_EAX, rn_AX, rn_AL, rn_AH); - ret_if_free5(rn_RCX, rn_ECX, rn_CX, rn_CL, rn_CH); - ret_if_free5(rn_RDX, rn_EDX, rn_DX, rn_DL, rn_DH); - ret_if_free5(rn_RBX, rn_EBX, rn_BX, rn_BL, rn_BH); - ret_if_free5(rn_RSI, rn_ESI, rn_SI, rn_SIL, rn_SIH); - ret_if_free5(rn_RDI, rn_EDI, rn_DI, rn_DIL, rn_DIH); - ret_if_free5(rn_RSP, rn_ESP, rn_SP, rn_SPL, rn_SPH); - ret_if_free5(rn_RBP, rn_EBP, rn_BP, rn_BPL, rn_BPH); - return rn_UNKNOWN; + ret_if_free4(IRDB_SDK::rn_R8, IRDB_SDK::rn_R8D, IRDB_SDK::rn_R8W, IRDB_SDK::rn_R8B); + ret_if_free4(IRDB_SDK::rn_R9, IRDB_SDK::rn_R9D, IRDB_SDK::rn_R9W, IRDB_SDK::rn_R9B); + ret_if_free4(IRDB_SDK::rn_R10, IRDB_SDK::rn_R10D, IRDB_SDK::rn_R10W, IRDB_SDK::rn_R10B); + ret_if_free4(IRDB_SDK::rn_R11, IRDB_SDK::rn_R11D, IRDB_SDK::rn_R11W, IRDB_SDK::rn_R11B); + ret_if_free4(IRDB_SDK::rn_R12, IRDB_SDK::rn_R12D, IRDB_SDK::rn_R12W, IRDB_SDK::rn_R12B); + ret_if_free4(IRDB_SDK::rn_R13, IRDB_SDK::rn_R13D, IRDB_SDK::rn_R13W, IRDB_SDK::rn_R13B); + ret_if_free4(IRDB_SDK::rn_R14, IRDB_SDK::rn_R14D, IRDB_SDK::rn_R14W, IRDB_SDK::rn_R14B); + ret_if_free4(IRDB_SDK::rn_R15, IRDB_SDK::rn_R15D, IRDB_SDK::rn_R15W, IRDB_SDK::rn_R15B); + ret_if_free5(IRDB_SDK::rn_RAX, IRDB_SDK::rn_EAX, IRDB_SDK::rn_AX, IRDB_SDK::rn_AL, IRDB_SDK::rn_AH); + ret_if_free5(IRDB_SDK::rn_RCX, IRDB_SDK::rn_ECX, IRDB_SDK::rn_CX, IRDB_SDK::rn_CL, IRDB_SDK::rn_CH); + ret_if_free5(IRDB_SDK::rn_RDX, IRDB_SDK::rn_EDX, IRDB_SDK::rn_DX, IRDB_SDK::rn_DL, IRDB_SDK::rn_DH); + ret_if_free5(IRDB_SDK::rn_RBX, IRDB_SDK::rn_EBX, IRDB_SDK::rn_BX, IRDB_SDK::rn_BL, IRDB_SDK::rn_BH); + ret_if_free5(IRDB_SDK::rn_RSI, IRDB_SDK::rn_ESI, IRDB_SDK::rn_SI, IRDB_SDK::rn_SIL, IRDB_SDK::rn_SIH); + ret_if_free5(IRDB_SDK::rn_RDI, IRDB_SDK::rn_EDI, IRDB_SDK::rn_DI, IRDB_SDK::rn_DIL, IRDB_SDK::rn_DIH); + ret_if_free5(IRDB_SDK::rn_RSP, IRDB_SDK::rn_ESP, IRDB_SDK::rn_SP, IRDB_SDK::rn_SPL, IRDB_SDK::rn_SPH); + ret_if_free5(IRDB_SDK::rn_RBP, IRDB_SDK::rn_EBP, IRDB_SDK::rn_BP, IRDB_SDK::rn_BPL, IRDB_SDK::rn_BPH); + return IRDB_SDK::rn_UNKNOWN; } string Register::readRegisterSet(const string &in, RegisterSet_t &out) @@ -453,77 +453,77 @@ RegisterName Register::promoteTo64(const RegisterName p_reg) switch (p_reg) { - case rn_AL: - case rn_AH: - case rn_AX: - case rn_EAX: - return rn_RAX; - case rn_BL: - case rn_BH: - case rn_BX: - case rn_EBX: - return rn_RBX; - case rn_CL: - case rn_CH: - case rn_CX: - case rn_ECX: - return rn_RCX; - case rn_DL: - case rn_DH: - case rn_DX: - case rn_EDX: - return rn_RDX; - case rn_DIL: - case rn_DI: - case rn_EDI: - return rn_RDI; - case rn_SIL: - case rn_SI: - case rn_ESI: - return rn_RSI; - case rn_BPL: - case rn_BP: - case rn_EBP: - return rn_RBP; - case rn_SPL: - case rn_SP: - case rn_ESP: - return rn_RSP; - case rn_R8B: - case rn_R8W: - case rn_R8D: - return rn_R8; - case rn_R9B: - case rn_R9W: - case rn_R9D: - return rn_R9; - case rn_R10B: - case rn_R10W: - case rn_R10D: - return rn_R10; - case rn_R11B: - case rn_R11W: - case rn_R11D: - return rn_R11; - case rn_R12B: - case rn_R12W: - case rn_R12D: - return rn_R12; - case rn_R13B: - case rn_R13W: - case rn_R13D: - return rn_R13; - case rn_R14B: - case rn_R14W: - case rn_R14D: - return rn_R14; - case rn_R15B: - case rn_R15W: - case rn_R15D: - return rn_R15; + case IRDB_SDK::rn_AL: + case IRDB_SDK::rn_AH: + case IRDB_SDK::rn_AX: + case IRDB_SDK::rn_EAX: + return IRDB_SDK::rn_RAX; + case IRDB_SDK::rn_BL: + case IRDB_SDK::rn_BH: + case IRDB_SDK::rn_BX: + case IRDB_SDK::rn_EBX: + return IRDB_SDK::rn_RBX; + case IRDB_SDK::rn_CL: + case IRDB_SDK::rn_CH: + case IRDB_SDK::rn_CX: + case IRDB_SDK::rn_ECX: + return IRDB_SDK::rn_RCX; + case IRDB_SDK::rn_DL: + case IRDB_SDK::rn_DH: + case IRDB_SDK::rn_DX: + case IRDB_SDK::rn_EDX: + return IRDB_SDK::rn_RDX; + case IRDB_SDK::rn_DIL: + case IRDB_SDK::rn_DI: + case IRDB_SDK::rn_EDI: + return IRDB_SDK::rn_RDI; + case IRDB_SDK::rn_SIL: + case IRDB_SDK::rn_SI: + case IRDB_SDK::rn_ESI: + return IRDB_SDK::rn_RSI; + case IRDB_SDK::rn_BPL: + case IRDB_SDK::rn_BP: + case IRDB_SDK::rn_EBP: + return IRDB_SDK::rn_RBP; + case IRDB_SDK::rn_SPL: + case IRDB_SDK::rn_SP: + case IRDB_SDK::rn_ESP: + return IRDB_SDK::rn_RSP; + case IRDB_SDK::rn_R8B: + case IRDB_SDK::rn_R8W: + case IRDB_SDK::rn_R8D: + return IRDB_SDK::rn_R8; + case IRDB_SDK::rn_R9B: + case IRDB_SDK::rn_R9W: + case IRDB_SDK::rn_R9D: + return IRDB_SDK::rn_R9; + case IRDB_SDK::rn_R10B: + case IRDB_SDK::rn_R10W: + case IRDB_SDK::rn_R10D: + return IRDB_SDK::rn_R10; + case IRDB_SDK::rn_R11B: + case IRDB_SDK::rn_R11W: + case IRDB_SDK::rn_R11D: + return IRDB_SDK::rn_R11; + case IRDB_SDK::rn_R12B: + case IRDB_SDK::rn_R12W: + case IRDB_SDK::rn_R12D: + return IRDB_SDK::rn_R12; + case IRDB_SDK::rn_R13B: + case IRDB_SDK::rn_R13W: + case IRDB_SDK::rn_R13D: + return IRDB_SDK::rn_R13; + case IRDB_SDK::rn_R14B: + case IRDB_SDK::rn_R14W: + case IRDB_SDK::rn_R14D: + return IRDB_SDK::rn_R14; + case IRDB_SDK::rn_R15B: + case IRDB_SDK::rn_R15W: + case IRDB_SDK::rn_R15D: + return IRDB_SDK::rn_R15; default: - return rn_UNKNOWN; + return IRDB_SDK::rn_UNKNOWN; break; } } @@ -535,24 +535,24 @@ RegisterName Register::demoteTo32(const RegisterName p_reg) switch (p_reg) { - case rn_RAX: return rn_EAX; - case rn_RBX: return rn_EBX; - case rn_RCX: return rn_ECX; - case rn_RDX: return rn_EDX; - case rn_RBP: return rn_EBP; - case rn_RSP: return rn_ESP; - case rn_RSI: return rn_ESI; - case rn_RDI: return rn_EDI; - case rn_R8: return rn_R8D; - case rn_R9: return rn_R9D; - case rn_R10: return rn_R10D; - case rn_R11: return rn_R11D; - case rn_R12: return rn_R12D; - case rn_R13: return rn_R13D; - case rn_R14: return rn_R14D; - case rn_R15: return rn_R15D; + case IRDB_SDK::rn_RAX: return IRDB_SDK::rn_EAX; + case IRDB_SDK::rn_RBX: return IRDB_SDK::rn_EBX; + case IRDB_SDK::rn_RCX: return IRDB_SDK::rn_ECX; + case IRDB_SDK::rn_RDX: return IRDB_SDK::rn_EDX; + case IRDB_SDK::rn_RBP: return IRDB_SDK::rn_EBP; + case IRDB_SDK::rn_RSP: return IRDB_SDK::rn_ESP; + case IRDB_SDK::rn_RSI: return IRDB_SDK::rn_ESI; + case IRDB_SDK::rn_RDI: return IRDB_SDK::rn_EDI; + case IRDB_SDK::rn_R8: return IRDB_SDK::rn_R8D; + case IRDB_SDK::rn_R9: return IRDB_SDK::rn_R9D; + case IRDB_SDK::rn_R10: return IRDB_SDK::rn_R10D; + case IRDB_SDK::rn_R11: return IRDB_SDK::rn_R11D; + case IRDB_SDK::rn_R12: return IRDB_SDK::rn_R12D; + case IRDB_SDK::rn_R13: return IRDB_SDK::rn_R13D; + case IRDB_SDK::rn_R14: return IRDB_SDK::rn_R14D; + case IRDB_SDK::rn_R15: return IRDB_SDK::rn_R15D; default: - return rn_UNKNOWN; + return IRDB_SDK::rn_UNKNOWN; break; } } @@ -564,24 +564,24 @@ RegisterName Register::demoteTo16(const RegisterName p_reg) switch (p_reg) { - case rn_RAX: case rn_EAX: return rn_AX; - case rn_RBX: case rn_EBX: return rn_BX; - case rn_RCX: case rn_ECX: return rn_CX; - case rn_RDX: case rn_EDX: return rn_DX; - case rn_RBP: case rn_EBP: return rn_BP; - case rn_RSP: case rn_ESP: return rn_SP; - case rn_RSI: case rn_ESI: return rn_SI; - case rn_RDI: case rn_EDI: return rn_DI; - case rn_R8: case rn_R8D: return rn_R8W; - case rn_R9: case rn_R9D: return rn_R9W; - case rn_R10: case rn_R10D: return rn_R10W; - case rn_R11: case rn_R11D: return rn_R11W; - case rn_R12: case rn_R12D: return rn_R12W; - case rn_R13: case rn_R13D: return rn_R13W; - case rn_R14: case rn_R14D: return rn_R14W; - case rn_R15: case rn_R15D: return rn_R15W; + case IRDB_SDK::rn_RAX: case IRDB_SDK::rn_EAX: return IRDB_SDK::rn_AX; + case IRDB_SDK::rn_RBX: case IRDB_SDK::rn_EBX: return IRDB_SDK::rn_BX; + case IRDB_SDK::rn_RCX: case IRDB_SDK::rn_ECX: return IRDB_SDK::rn_CX; + case IRDB_SDK::rn_RDX: case IRDB_SDK::rn_EDX: return IRDB_SDK::rn_DX; + case IRDB_SDK::rn_RBP: case IRDB_SDK::rn_EBP: return IRDB_SDK::rn_BP; + case IRDB_SDK::rn_RSP: case IRDB_SDK::rn_ESP: return IRDB_SDK::rn_SP; + case IRDB_SDK::rn_RSI: case IRDB_SDK::rn_ESI: return IRDB_SDK::rn_SI; + case IRDB_SDK::rn_RDI: case IRDB_SDK::rn_EDI: return IRDB_SDK::rn_DI; + case IRDB_SDK::rn_R8: case IRDB_SDK::rn_R8D: return IRDB_SDK::rn_R8W; + case IRDB_SDK::rn_R9: case IRDB_SDK::rn_R9D: return IRDB_SDK::rn_R9W; + case IRDB_SDK::rn_R10: case IRDB_SDK::rn_R10D: return IRDB_SDK::rn_R10W; + case IRDB_SDK::rn_R11: case IRDB_SDK::rn_R11D: return IRDB_SDK::rn_R11W; + case IRDB_SDK::rn_R12: case IRDB_SDK::rn_R12D: return IRDB_SDK::rn_R12W; + case IRDB_SDK::rn_R13: case IRDB_SDK::rn_R13D: return IRDB_SDK::rn_R13W; + case IRDB_SDK::rn_R14: case IRDB_SDK::rn_R14D: return IRDB_SDK::rn_R14W; + case IRDB_SDK::rn_R15: case IRDB_SDK::rn_R15D: return IRDB_SDK::rn_R15W; default: - return rn_UNKNOWN; + return IRDB_SDK::rn_UNKNOWN; break; } } -- GitLab