From 98f6cfbfeb31c0462c69196d4a52dba43ccb89f5 Mon Sep 17 00:00:00 2001 From: an7s <an7s@git.zephyr-software.com> Date: Mon, 15 Apr 2013 22:24:27 +0000 Subject: [PATCH] Added more registers Former-commit-id: 1d6e17d650d881d55e9425579ec7745af345f154 --- libMEDSannotation/include/MEDS_Register.hpp | 2 +- libMEDSannotation/src/MEDS_Register.cpp | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libMEDSannotation/include/MEDS_Register.hpp b/libMEDSannotation/include/MEDS_Register.hpp index d00ff66ab..5452489f0 100644 --- a/libMEDSannotation/include/MEDS_Register.hpp +++ b/libMEDSannotation/include/MEDS_Register.hpp @@ -8,7 +8,7 @@ namespace MEDS_Annotation class Register { public: - enum RegisterName { UNKNOWN, EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, AX, BX, CX, DX, AH, BH, CH, DH, AL, BL, CL, DL }; + enum RegisterName { UNKNOWN, EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, AX, BX, CX, DX, BP, SP, SI, DI, AH, BH, CH, DH, AL, BL, CL, DL }; static RegisterName getRegister(std::string); static RegisterName getRegister(char *str); static bool is32bit(RegisterName); diff --git a/libMEDSannotation/src/MEDS_Register.cpp b/libMEDSannotation/src/MEDS_Register.cpp index e80ef69a2..4e72adfc1 100644 --- a/libMEDSannotation/src/MEDS_Register.cpp +++ b/libMEDSannotation/src/MEDS_Register.cpp @@ -36,6 +36,14 @@ Register::RegisterName Register::getRegister(std::string p_reg) return CX; else if (strcasecmp(p_reg.c_str(), "DX") == 0) return DX; + else if (strcasecmp(p_reg.c_str(), "BP") == 0) + return BP; + else if (strcasecmp(p_reg.c_str(), "SP") == 0) + return SP; + else if (strcasecmp(p_reg.c_str(), "SI") == 0) + return SI; + else if (strcasecmp(p_reg.c_str(), "DI") == 0) + return DI; else if (strcasecmp(p_reg.c_str(), "AH") == 0) return AL; else if (strcasecmp(p_reg.c_str(), "BH") == 0) @@ -64,7 +72,8 @@ bool Register::is8bit(Register::RegisterName p_reg) bool Register::is16bit(Register::RegisterName p_reg) { - return p_reg == AX || p_reg == BX || p_reg == CX || p_reg == DX; + return p_reg == AX || p_reg == BX || p_reg == CX || p_reg == DX || + p_reg == BP || p_reg == SP || p_reg == SI || p_reg == DI; } bool Register::is32bit(Register::RegisterName p_reg) @@ -88,6 +97,10 @@ std::string Register::toString(Register::RegisterName p_reg) else if (p_reg == BX) return std::string("BX"); else if (p_reg == CX) return std::string("CX"); else if (p_reg == DX) return std::string("DX"); + else if (p_reg == BP) return std::string("BP"); + else if (p_reg == SP) return std::string("SP"); + else if (p_reg == SI) return std::string("SI"); + else if (p_reg == DI) return std::string("DI"); else if (p_reg == AH) return std::string("AH"); else if (p_reg == BH) return std::string("BH"); else if (p_reg == CH) return std::string("CH"); @@ -118,6 +131,10 @@ int Register::getBitWidth(Register::RegisterName p_reg) case BX: case CX: case DX: + case BP: + case SP: + case SI: + case DI: return 16; break; -- GitLab