Public メソッド | |
DisassemblerIA32 (const NameConverter &converter, bool abort_on_unimplemented=true) | |
virtual | ~DisassemblerIA32 () |
int | InstructionDecode (v8::internal::Vector< char > buffer, byte *instruction) |
Private 型 | |
enum | { eax = 0, ecx = 1, edx = 2, ebx = 3, esp = 4, ebp = 5, esi = 6, edi = 7 } |
Private メソッド | |
const char * | NameOfCPURegister (int reg) const |
const char * | NameOfXMMRegister (int reg) const |
const char * | NameOfAddress (byte *addr) const |
int | PrintRightOperand (byte *modrmp) |
int | PrintOperands (const char *mnem, OperandOrder op_order, byte *data) |
int | PrintImmediateOp (byte *data) |
int | F7Instruction (byte *data) |
int | D1D3C1Instruction (byte *data) |
int | JumpShort (byte *data) |
int | JumpConditional (byte *data, const char *comment) |
int | JumpConditionalShort (byte *data, const char *comment) |
int | FPUInstruction (byte *data) |
void | AppendToBuffer (const char *format,...) |
void | UnimplementedInstruction () |
Static Private メソッド | |
static void | get_modrm (byte data, int *mod, int *regop, int *rm) |
static void | get_sib (byte data, int *scale, int *index, int *base) |
Private 変数 | |
const NameConverter & | converter_ |
v8::internal::EmbeddedVector < char, 128 > | tmp_buffer_ |
unsigned int | tmp_buffer_pos_ |
bool | abort_on_unimplemented_ |
disasm-ia32.cc の 222 行で定義されています。
anonymous enum [private] |
disasm-ia32.cc の 245 行で定義されています。
disasm::DisassemblerIA32::DisassemblerIA32 | ( | const NameConverter & | converter, | |
bool | abort_on_unimplemented = true | |||
) | [inline] |
disasm-ia32.cc の 224 行で定義されています。
参照先 tmp_buffer_.
virtual disasm::DisassemblerIA32::~DisassemblerIA32 | ( | ) | [inline, virtual] |
disasm-ia32.cc の 232 行で定義されています。
void disasm::DisassemblerIA32::AppendToBuffer | ( | const char * | format, | |
... | ||||
) | [private] |
disasm-ia32.cc の 309 行で定義されています。
参照先 tmp_buffer_, tmp_buffer_pos_, と v8::internal::OS::VSNPrintF().
参照元 D1D3C1Instruction(), F7Instruction(), FPUInstruction(), InstructionDecode(), JumpConditional(), JumpConditionalShort(), JumpShort(), PrintImmediateOp(), PrintOperands(), PrintRightOperand(), と UnimplementedInstruction().
int disasm::DisassemblerIA32::D1D3C1Instruction | ( | byte * | data | ) | [private] |
disasm-ia32.cc の 489 行で定義されています。
参照先 AppendToBuffer(), ebp, edi, edx, esp, get_modrm(), NameOfCPURegister(), NULL, と UnimplementedInstruction().
参照元 InstructionDecode().
int disasm::DisassemblerIA32::F7Instruction | ( | byte * | data | ) | [private] |
disasm-ia32.cc の 457 行で定義されています。
参照先 AppendToBuffer(), eax, get_modrm(), NameOfCPURegister(), NULL, PrintRightOperand(), と UnimplementedInstruction().
参照元 InstructionDecode().
int disasm::DisassemblerIA32::FPUInstruction | ( | byte * | data | ) | [private] |
disasm-ia32.cc の 578 行で定義されています。
参照先 AppendToBuffer(), eax, ebp, ebx, edi, edx, get_modrm(), NULL, PrintRightOperand(), と UnimplementedInstruction().
参照元 InstructionDecode().
static void disasm::DisassemblerIA32::get_modrm | ( | byte | data, | |
int * | mod, | |||
int * | regop, | |||
int * | rm | |||
) | [inline, static, private] |
disasm-ia32.cc の 273 行で定義されています。
参照元 D1D3C1Instruction(), F7Instruction(), FPUInstruction(), InstructionDecode(), PrintImmediateOp(), PrintOperands(), と PrintRightOperand().
static void disasm::DisassemblerIA32::get_sib | ( | byte | data, | |
int * | scale, | |||
int * | index, | |||
int * | base | |||
) | [inline, static, private] |
disasm-ia32.cc の 280 行で定義されています。
参照元 PrintRightOperand().
int disasm::DisassemblerIA32::InstructionDecode | ( | v8::internal::Vector< char > | buffer, | |
byte * | instruction | |||
) |
disasm-ia32.cc の 704 行で定義されています。
参照先 AppendToBuffer(), ASSERT, disasm::CALL_JUMP_INSTR, D1D3C1Instruction(), eax, ecx, edx, esi, esp, disasm::F0Mnem(), F7Instruction(), FPUInstruction(), disasm::InstructionTable::Get(), get_modrm(), disasm::instruction_table, disasm::JUMP_CONDITIONAL_SHORT_INSTR, JumpConditional(), JumpConditionalShort(), JumpShort(), disasm::InstructionDesc::mnem, disasm::MOVE_REG_INSTR, NameOfAddress(), NameOfCPURegister(), NameOfXMMRegister(), disasm::NO_INSTR, NULL, disasm::InstructionDesc::op_order_, PrintImmediateOp(), PrintOperands(), PrintRightOperand(), disasm::REG_OPER_OP_ORDER, disasm::REGISTER_INSTR, disasm::SHORT_IMMEDIATE_INSTR, v8::internal::OS::SNPrintF(), v8::internal::Vector< T >::start(), tmp_buffer_, tmp_buffer_pos_, disasm::TWO_OPERANDS_INSTR, disasm::InstructionDesc::type, UNIMPLEMENTED, UnimplementedInstruction(), と disasm::ZERO_OPERANDS_INSTR.
int disasm::DisassemblerIA32::JumpConditional | ( | byte * | data, | |
const char * | comment | |||
) | [private] |
disasm-ia32.cc の 550 行で定義されています。
参照先 AppendToBuffer(), disasm::jump_conditional_mnem, NameOfAddress(), と NULL.
参照元 InstructionDecode().
int disasm::DisassemblerIA32::JumpConditionalShort | ( | byte * | data, | |
const char * | comment | |||
) | [private] |
disasm-ia32.cc の 564 行で定義されています。
参照先 AppendToBuffer(), disasm::jump_conditional_mnem, NameOfAddress(), と NULL.
参照元 InstructionDecode().
int disasm::DisassemblerIA32::JumpShort | ( | byte * | data | ) | [private] |
const char* disasm::DisassemblerIA32::NameOfAddress | ( | byte * | addr | ) | const [inline, private] |
disasm-ia32.cc の 267 行で定義されています。
参照先 converter_, と disasm::NameConverter::NameOfAddress().
参照元 InstructionDecode(), JumpConditional(), JumpConditionalShort(), と JumpShort().
const char* disasm::DisassemblerIA32::NameOfCPURegister | ( | int | reg | ) | const [inline, private] |
disasm-ia32.cc の 257 行で定義されています。
参照先 converter_, と disasm::NameConverter::NameOfCPURegister().
参照元 D1D3C1Instruction(), F7Instruction(), InstructionDecode(), PrintOperands(), と PrintRightOperand().
const char* disasm::DisassemblerIA32::NameOfXMMRegister | ( | int | reg | ) | const [inline, private] |
disasm-ia32.cc の 262 行で定義されています。
参照先 converter_, と disasm::NameConverter::NameOfXMMRegister().
参照元 InstructionDecode().
int disasm::DisassemblerIA32::PrintImmediateOp | ( | byte * | data | ) | [private] |
disasm-ia32.cc の 428 行で定義されています。
参照先 AppendToBuffer(), get_modrm(), PrintRightOperand(), と UnimplementedInstruction().
参照元 InstructionDecode().
int disasm::DisassemblerIA32::PrintOperands | ( | const char * | mnem, | |
OperandOrder | op_order, | |||
byte * | data | |||
) | [private] |
disasm-ia32.cc の 399 行で定義されています。
参照先 AppendToBuffer(), get_modrm(), NameOfCPURegister(), disasm::OPER_REG_OP_ORDER, PrintRightOperand(), disasm::REG_OPER_OP_ORDER, と UNREACHABLE.
参照元 InstructionDecode().
int disasm::DisassemblerIA32::PrintRightOperand | ( | byte * | modrmp | ) | [private] |
disasm-ia32.cc の 321 行で定義されています。
参照先 AppendToBuffer(), ebp, esp, get_modrm(), get_sib(), NameOfCPURegister(), UnimplementedInstruction(), と UNREACHABLE.
参照元 F7Instruction(), FPUInstruction(), InstructionDecode(), PrintImmediateOp(), と PrintOperands().
void disasm::DisassemblerIA32::UnimplementedInstruction | ( | ) | [inline, private] |
disasm-ia32.cc の 299 行で定義されています。
参照先 abort_on_unimplemented_, AppendToBuffer(), と UNIMPLEMENTED.
参照元 D1D3C1Instruction(), F7Instruction(), FPUInstruction(), InstructionDecode(), PrintImmediateOp(), と PrintRightOperand().
bool disasm::DisassemblerIA32::abort_on_unimplemented_ [private] |
disasm-ia32.cc の 242 行で定義されています。
const NameConverter& disasm::DisassemblerIA32::converter_ [private] |
disasm-ia32.cc の 239 行で定義されています。
参照元 NameOfAddress(), NameOfCPURegister(), と NameOfXMMRegister().
v8::internal::EmbeddedVector<char, 128> disasm::DisassemblerIA32::tmp_buffer_ [private] |
disasm-ia32.cc の 240 行で定義されています。
参照元 AppendToBuffer(), DisassemblerIA32(), と InstructionDecode().
unsigned int disasm::DisassemblerIA32::tmp_buffer_pos_ [private] |
disasm-ia32.cc の 241 行で定義されています。
参照元 AppendToBuffer(), と InstructionDecode().