disas/nanomips: Extract enums out of the NMD class

Definitions of enums TABLE_ENTRY_TYPE and TABLE_ATTRIBUTE_TYPE are moved
out of the NMD class. The main goal is to remove NMD class completely.

Signed-off-by: Milica Lazarevic <milica.lazarevic@syrmia.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220912122635.74032-3-milica.lazarevic@syrmia.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
master
Milica Lazarevic 2022-09-12 14:26:13 +02:00 committed by Philippe Mathieu-Daudé
parent c52316925c
commit bfffba15b2
2 changed files with 33 additions and 34 deletions

View File

@ -50,8 +50,8 @@ int nanomips_dis(char *buf,
std::string disasm;
uint16 bits[3] = {one, two, three};
NMD::TABLE_ENTRY_TYPE type;
NMD d(address, NMD::ALL_ATTRIBUTES);
TABLE_ENTRY_TYPE type;
NMD d(address, ALL_ATTRIBUTES);
int size = d.Disassemble(bits, disasm, type);
strcpy(buf, disasm.c_str());
@ -772,7 +772,7 @@ uint64 NMD::extract_op_code_value(const uint16 * data, int size)
int NMD::Disassemble(const uint16 * data, std::string & dis,
NMD::TABLE_ENTRY_TYPE & type)
TABLE_ENTRY_TYPE & type)
{
return Disassemble(data, dis, type, MAJOR, 2);
}
@ -790,7 +790,7 @@ int NMD::Disassemble(const uint16 * data, std::string & dis,
* disassembly string - on error will constain error string
*/
int NMD::Disassemble(const uint16 * data, std::string & dis,
NMD::TABLE_ENTRY_TYPE & type, const Pool *table,
TABLE_ENTRY_TYPE & type, const Pool *table,
int table_size)
{
try

View File

@ -31,41 +31,40 @@ typedef uint32_t uint32;
typedef uint16_t uint16;
typedef uint64_t img_address;
enum TABLE_ENTRY_TYPE {
instruction,
call_instruction,
branch_instruction,
return_instruction,
reserved_block,
pool,
};
enum TABLE_ATTRIBUTE_TYPE {
MIPS64_ = 0x00000001,
XNP_ = 0x00000002,
XMMS_ = 0x00000004,
EVA_ = 0x00000008,
DSP_ = 0x00000010,
MT_ = 0x00000020,
EJTAG_ = 0x00000040,
TLBINV_ = 0x00000080,
CP0_ = 0x00000100,
CP1_ = 0x00000200,
CP2_ = 0x00000400,
UDI_ = 0x00000800,
MCU_ = 0x00001000,
VZ_ = 0x00002000,
TLB_ = 0x00004000,
MVH_ = 0x00008000,
ALL_ATTRIBUTES = 0xffffffffull,
};
class NMD
{
public:
enum TABLE_ENTRY_TYPE {
instruction,
call_instruction,
branch_instruction,
return_instruction,
reserved_block,
pool,
};
enum TABLE_ATTRIBUTE_TYPE {
MIPS64_ = 0x00000001,
XNP_ = 0x00000002,
XMMS_ = 0x00000004,
EVA_ = 0x00000008,
DSP_ = 0x00000010,
MT_ = 0x00000020,
EJTAG_ = 0x00000040,
TLBINV_ = 0x00000080,
CP0_ = 0x00000100,
CP1_ = 0x00000200,
CP2_ = 0x00000400,
UDI_ = 0x00000800,
MCU_ = 0x00001000,
VZ_ = 0x00002000,
TLB_ = 0x00004000,
MVH_ = 0x00008000,
ALL_ATTRIBUTES = 0xffffffffull,
};
NMD(img_address pc, TABLE_ATTRIBUTE_TYPE requested_instruction_categories)
: m_pc(pc)
, m_requested_instruction_categories(requested_instruction_categories)