#include "x86regs.h"
Go to the source code of this file.
|
Definition at line 28 of file registers.h. |
|
Definition at line 188 of file registers.h. Referenced by Instruction::GetUseType(), INSTPROCDECL(), InstructionDecoder::mod_reg2(), ScanningComplexReg::ProcessInstruction(), and Instruction::WriteRegUsage(). |
|
|
|
Referenced by CodeParser::ExecuteComplexReferenceReg(), get_regnum(), Instruction::GetUseType(), and ScanningComplexReg::ScanningComplexReg(). |
|
Definition at line 30 of file registers.h.
00030 { 00031 null_reg = -1, 00032 #include "x86regs.h" 00033 __reg_Count 00034 } reg_t; 00035 #undef DEFINE_REG 00036 00037 typedef struct reg_info 00038 { 00039 enum reg_size { bit = 0,byte = 1,word = 2,dword = 4,packetI = 8,packetF = 16,floating = 10}; 00040 enum reg_size size; 00041 enum reg_type { flag,byte_low_low,byte_low_high,word_low,general,segment,special }; 00042 enum reg_type type; 00043 const char* name; 00044 int completeReg; // valido per parziali, uguale a reg se non parziale 00045 unsigned partialMask; // !!! quanti bits ? 00046 unsigned char GetByteSize() const 00047 { return (unsigned char)size; } 00048 } reg_info; 00049 00050 #ifdef DEBUG 00051 #include <stdexcept> 00052 #endif 00053 00054 class RegistryInfo 00055 { 00056 public: 00057 static const reg_info* GetInfo(const char* name); 00058 static const reg_info* GetInfo(reg_t i); 00059 static reg_t GetIndex(const char* name); 00060 #ifdef DEBUG 00061 static reg_t GetRegSafe(const char* name) 00062 { 00063 reg_t reg = GetIndex(name); 00064 if (reg == null_reg) 00065 throw std::runtime_error(name); 00066 return reg; 00067 } 00068 #endif 00069 }; 00070 00071 #define REG(s) __reg_##s 00072 00073 #endif //FILE_REGISTERS_H |