diff options
Diffstat (limited to 'lldb/source/Core')
| -rw-r--r-- | lldb/source/Core/Disassembler.cpp | 2 | ||||
| -rw-r--r-- | lldb/source/Core/EmulateInstruction.cpp | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lldb/source/Core/Disassembler.cpp b/lldb/source/Core/Disassembler.cpp index 2318cf5783d..c422113b688 100644 --- a/lldb/source/Core/Disassembler.cpp +++ b/lldb/source/Core/Disassembler.cpp @@ -504,6 +504,7 @@ Instruction::DumpEmulation (const ArchSpec &arch) bool Instruction::Emulate (const ArchSpec &arch, + bool auto_advance_pc, void *baton, EmulateInstruction::ReadMemory read_mem_callback, EmulateInstruction::WriteMemory write_mem_callback, @@ -516,6 +517,7 @@ Instruction::Emulate (const ArchSpec &arch, insn_emulator_ap->SetBaton (baton); insn_emulator_ap->SetCallbacks (read_mem_callback, write_mem_callback, read_reg_callback, write_reg_callback); insn_emulator_ap->SetInstruction (GetOpcode(), GetAddress()); + insn_emulator_ap->SetAdvancePC (auto_advance_pc); return insn_emulator_ap->EvaluateInstruction (); } diff --git a/lldb/source/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp index 7130360fb34..e828dbc7ca1 100644 --- a/lldb/source/Core/EmulateInstruction.cpp +++ b/lldb/source/Core/EmulateInstruction.cpp @@ -70,7 +70,8 @@ EmulateInstruction::EmulateInstruction m_read_reg_callback (read_reg_callback), m_write_reg_callback (write_reg_callback), m_opcode (), - m_opcode_pc (LLDB_INVALID_ADDRESS) + m_opcode_pc (LLDB_INVALID_ADDRESS), + m_advance_pc (false) { } @@ -88,7 +89,8 @@ EmulateInstruction::EmulateInstruction m_write_mem_callback (&WriteMemoryDefault), m_read_reg_callback (&ReadRegisterDefault), m_write_reg_callback (&WriteRegisterDefault), - m_opcode_pc (LLDB_INVALID_ADDRESS) + m_opcode_pc (LLDB_INVALID_ADDRESS), + m_advance_pc (false) { ::memset (&m_opcode, 0, sizeof (m_opcode)); } |

