summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core')
-rw-r--r--lldb/source/Core/Disassembler.cpp2
-rw-r--r--lldb/source/Core/EmulateInstruction.cpp6
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));
}
OpenPOWER on IntegriCloud