diff options
Diffstat (limited to 'source/Core/EmulateInstruction.cpp')
-rw-r--r-- | source/Core/EmulateInstruction.cpp | 108 |
1 files changed, 44 insertions, 64 deletions
diff --git a/source/Core/EmulateInstruction.cpp b/source/Core/EmulateInstruction.cpp index 9b6beeb8299a..e46cfb2d8945 100644 --- a/source/Core/EmulateInstruction.cpp +++ b/source/Core/EmulateInstruction.cpp @@ -9,6 +9,12 @@ #include "lldb/Core/EmulateInstruction.h" +// C Includes +// C++ Includes +#include <cstring> + +// Other libraries and framework includes +// Project includes #include "lldb/Core/Address.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Error.h" @@ -29,7 +35,7 @@ using namespace lldb_private; EmulateInstruction* EmulateInstruction::FindPlugin (const ArchSpec &arch, InstructionType supported_inst_type, const char *plugin_name) { - EmulateInstructionCreateInstance create_callback = NULL; + EmulateInstructionCreateInstance create_callback = nullptr; if (plugin_name) { ConstString const_plugin_name (plugin_name); @@ -43,33 +49,32 @@ EmulateInstruction::FindPlugin (const ArchSpec &arch, InstructionType supported_ } else { - for (uint32_t idx = 0; (create_callback = PluginManager::GetEmulateInstructionCreateCallbackAtIndex(idx)) != NULL; ++idx) + for (uint32_t idx = 0; (create_callback = PluginManager::GetEmulateInstructionCreateCallbackAtIndex(idx)) != nullptr; ++idx) { EmulateInstruction *emulate_insn_ptr = create_callback(arch, supported_inst_type); if (emulate_insn_ptr) return emulate_insn_ptr; } } - return NULL; + return nullptr; } EmulateInstruction::EmulateInstruction (const ArchSpec &arch) : - m_arch (arch), - m_baton (NULL), - m_read_mem_callback (&ReadMemoryDefault), - m_write_mem_callback (&WriteMemoryDefault), - m_read_reg_callback (&ReadRegisterDefault), - m_write_reg_callback (&WriteRegisterDefault), - m_addr (LLDB_INVALID_ADDRESS) + m_arch(arch), + m_baton(nullptr), + m_read_mem_callback(&ReadMemoryDefault), + m_write_mem_callback(&WriteMemoryDefault), + m_read_reg_callback(&ReadRegisterDefault), + m_write_reg_callback(&WriteRegisterDefault), + m_addr(LLDB_INVALID_ADDRESS) { ::memset (&m_opcode, 0, sizeof (m_opcode)); } - bool EmulateInstruction::ReadRegister (const RegisterInfo *reg_info, RegisterValue& reg_value) { - if (m_read_reg_callback) + if (m_read_reg_callback != nullptr) return m_read_reg_callback (this, m_baton, reg_info, reg_value); return false; } @@ -115,7 +120,7 @@ EmulateInstruction::WriteRegister (const Context &context, const RegisterInfo *reg_info, const RegisterValue& reg_value) { - if (m_write_reg_callback) + if (m_write_reg_callback != nullptr) return m_write_reg_callback (this, m_baton, context, reg_info, reg_value); return false; } @@ -132,14 +137,12 @@ EmulateInstruction::WriteRegister (const Context &context, return false; } - bool EmulateInstruction::WriteRegisterUnsigned (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, uint64_t uint_value) { - RegisterInfo reg_info; if (GetRegisterInfo(reg_kind, reg_num, reg_info)) { @@ -155,8 +158,7 @@ EmulateInstruction::WriteRegisterUnsigned (const Context &context, const RegisterInfo *reg_info, uint64_t uint_value) { - - if (reg_info) + if (reg_info != nullptr) { RegisterValue reg_value; if (reg_value.SetUInt(uint_value, reg_info->byte_size)) @@ -171,7 +173,7 @@ EmulateInstruction::ReadMemory (const Context &context, void *dst, size_t dst_len) { - if (m_read_mem_callback) + if (m_read_mem_callback != nullptr) return m_read_mem_callback (this, m_baton, context, addr, dst, dst_len) == dst_len; return false; } @@ -202,7 +204,6 @@ EmulateInstruction::ReadMemoryUnsigned (const Context &context, lldb::addr_t add return uval64; } - bool EmulateInstruction::WriteMemoryUnsigned (const Context &context, lldb::addr_t addr, @@ -213,9 +214,7 @@ EmulateInstruction::WriteMemoryUnsigned (const Context &context, strm.PutMaxHex64 (uval, uval_byte_size); size_t bytes_written = m_write_mem_callback (this, m_baton, context, addr, strm.GetData(), uval_byte_size); - if (bytes_written == uval_byte_size) - return true; - return false; + return (bytes_written == uval_byte_size); } bool @@ -224,12 +223,11 @@ EmulateInstruction::WriteMemory (const Context &context, const void *src, size_t src_len) { - if (m_write_mem_callback) + if (m_write_mem_callback != nullptr) return m_write_mem_callback (this, m_baton, context, addr, src, src_len) == src_len; return false; } - void EmulateInstruction::SetBaton (void *baton) { @@ -254,29 +252,24 @@ EmulateInstruction::SetReadMemCallback (ReadMemoryCallback read_mem_callback) m_read_mem_callback = read_mem_callback; } - void EmulateInstruction::SetWriteMemCallback (WriteMemoryCallback write_mem_callback) { m_write_mem_callback = write_mem_callback; } - void EmulateInstruction::SetReadRegCallback (ReadRegisterCallback read_reg_callback) { m_read_reg_callback = read_reg_callback; } - void EmulateInstruction::SetWriteRegCallback (WriteRegisterCallback write_reg_callback) { m_write_reg_callback = write_reg_callback; } - - // // Read & Write Memory and Registers callback functions. // @@ -289,7 +282,7 @@ EmulateInstruction::ReadMemoryFrame (EmulateInstruction *instruction, void *dst, size_t dst_len) { - if (!baton || dst == NULL || dst_len == 0) + if (baton == nullptr || dst == nullptr || dst_len == 0) return 0; StackFrame *frame = (StackFrame *) baton; @@ -311,7 +304,7 @@ EmulateInstruction::WriteMemoryFrame (EmulateInstruction *instruction, const void *src, size_t src_len) { - if (!baton || src == NULL || src_len == 0) + if (baton == nullptr || src == nullptr || src_len == 0) return 0; StackFrame *frame = (StackFrame *) baton; @@ -332,7 +325,7 @@ EmulateInstruction::ReadRegisterFrame (EmulateInstruction *instruction, const RegisterInfo *reg_info, RegisterValue ®_value) { - if (!baton) + if (baton == nullptr) return false; StackFrame *frame = (StackFrame *) baton; @@ -346,7 +339,7 @@ EmulateInstruction::WriteRegisterFrame (EmulateInstruction *instruction, const RegisterInfo *reg_info, const RegisterValue ®_value) { - if (!baton) + if (baton == nullptr) return false; StackFrame *frame = (StackFrame *) baton; @@ -504,45 +497,35 @@ EmulateInstruction::Context::Dump (Stream &strm, switch (info_type) { case eInfoTypeRegisterPlusOffset: - { - strm.Printf (" (reg_plus_offset = %s%+" PRId64 ")", - info.RegisterPlusOffset.reg.name, - info.RegisterPlusOffset.signed_offset); - } + strm.Printf(" (reg_plus_offset = %s%+" PRId64 ")", + info.RegisterPlusOffset.reg.name, + info.RegisterPlusOffset.signed_offset); break; case eInfoTypeRegisterPlusIndirectOffset: - { - strm.Printf (" (reg_plus_reg = %s + %s)", - info.RegisterPlusIndirectOffset.base_reg.name, - info.RegisterPlusIndirectOffset.offset_reg.name); - } + strm.Printf(" (reg_plus_reg = %s + %s)", + info.RegisterPlusIndirectOffset.base_reg.name, + info.RegisterPlusIndirectOffset.offset_reg.name); break; case eInfoTypeRegisterToRegisterPlusOffset: - { - strm.Printf (" (base_and_imm_offset = %s%+" PRId64 ", data_reg = %s)", - info.RegisterToRegisterPlusOffset.base_reg.name, - info.RegisterToRegisterPlusOffset.offset, - info.RegisterToRegisterPlusOffset.data_reg.name); - } + strm.Printf(" (base_and_imm_offset = %s%+" PRId64 ", data_reg = %s)", + info.RegisterToRegisterPlusOffset.base_reg.name, + info.RegisterToRegisterPlusOffset.offset, + info.RegisterToRegisterPlusOffset.data_reg.name); break; case eInfoTypeRegisterToRegisterPlusIndirectOffset: - { - strm.Printf (" (base_and_reg_offset = %s + %s, data_reg = %s)", - info.RegisterToRegisterPlusIndirectOffset.base_reg.name, - info.RegisterToRegisterPlusIndirectOffset.offset_reg.name, - info.RegisterToRegisterPlusIndirectOffset.data_reg.name); - } + strm.Printf(" (base_and_reg_offset = %s + %s, data_reg = %s)", + info.RegisterToRegisterPlusIndirectOffset.base_reg.name, + info.RegisterToRegisterPlusIndirectOffset.offset_reg.name, + info.RegisterToRegisterPlusIndirectOffset.data_reg.name); break; case eInfoTypeRegisterRegisterOperands: - { - strm.Printf (" (register to register binary op: %s and %s)", - info.RegisterRegisterOperands.operand1.name, - info.RegisterRegisterOperands.operand2.name); - } + strm.Printf(" (register to register binary op: %s and %s)", + info.RegisterRegisterOperands.operand1.name, + info.RegisterRegisterOperands.operand2.name); break; case eInfoTypeOffset: @@ -599,7 +582,7 @@ EmulateInstruction::SetInstruction (const Opcode &opcode, const Address &inst_ad m_addr = LLDB_INVALID_ADDRESS; if (inst_addr.IsValid()) { - if (target) + if (target != nullptr) m_addr = inst_addr.GetLoadAddress (target); if (m_addr == LLDB_INVALID_ADDRESS) m_addr = inst_addr.GetFileAddress (); @@ -661,12 +644,9 @@ EmulateInstruction::GetInternalRegisterNumber (RegisterContext *reg_ctx, const R return LLDB_INVALID_REGNUM; } - bool EmulateInstruction::CreateFunctionEntryUnwind (UnwindPlan &unwind_plan) { unwind_plan.Clear(); return false; } - - |