Fix various things in the instruction emulation code:
- Add ability to control whether or not the emulator advances the
PC register (in the emulation state), if the instruction itself
does not change the pc value..
- Fix a few typos in asm description strings.
- Fix bug in the carry flag calculation.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129168 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBInstruction.cpp b/source/API/SBInstruction.cpp
index e46e869..a4ab155 100644
--- a/source/API/SBInstruction.cpp
+++ b/source/API/SBInstruction.cpp
@@ -116,7 +116,7 @@
}
bool
-SBInstruction::EmulateWithFrame (lldb::SBFrame &frame)
+SBInstruction::EmulateWithFrame (lldb::SBFrame &frame, bool auto_advance_pc)
{
if (m_opaque_sp && frame.get())
{
@@ -126,6 +126,7 @@
lldb_private::ArchSpec arch = target->GetArchitecture();
return m_opaque_sp->Emulate (arch,
+ auto_advance_pc,
(void *) frame.get(),
&lldb_private::EmulateInstruction::ReadMemoryFrame,
&lldb_private::EmulateInstruction::WriteMemoryFrame,
@@ -142,12 +143,8 @@
{
lldb_private::ArchSpec arch (triple, NULL);
- return m_opaque_sp->Emulate (arch,
- NULL,
- &lldb_private::EmulateInstruction::ReadMemoryDefault,
- &lldb_private::EmulateInstruction::WriteMemoryDefault,
- &lldb_private::EmulateInstruction::ReadRegisterDefault,
- &lldb_private::EmulateInstruction::WriteRegisterDefault);
+ return m_opaque_sp->DumpEmulation (arch);
+
}
return false;
}