History log of /external/lldb/include/lldb/Core/EmulateInstruction.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
73844aa19a7360b662e2be710fc3c969d6c86606 22-Aug-2012 Greg Clayton <gclayton@apple.com> Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
- no setting auto completion
- very manual and error prone way of getting/setting variables
- tons of code duplication
- useless instance names for processes, threads

Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
b23bb8e26f227795ba89d79663d5a21951cddb9e 09-Jul-2012 Filipe Cabecinhas <me@filcab.net> Fixed typos found while reading commit logs.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
7fad24a9fd7226016b28fef78930501a1bef898c 09-Jul-2012 Jason Molenda <jmolenda@apple.com> Simplify the CreateDefaultUnwindPlan methods for the x86 and arm unwinders
a bit -- we're creating the UnwindPlan here, we can set the register set to
whatever is convenient for us, no need to handle different register sets.

A handful of small comment fixes I noticed while reading through the code.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@159924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
75906e4ec98af3717e415727a8d663a4e246bb4f 11-May-2011 Greg Clayton <gclayton@apple.com> Moved all code from ArchDefaultUnwindPlan and ArchVolatileRegs into their
respective ABI plugins as they were plug-ins that supplied ABI specfic info.

Also hookep up the UnwindAssemblyInstEmulation so that it can generate the
unwind plans for ARM.

Changed the way ABI plug-ins are handed out when you get an instance from
the plug-in manager. They used to return pointers that would be mananged
individually by each client that requested them, but now they are handed out
as shared pointers since there is no state in the ABI objects, they can be
shared.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
061b79dbf1fefaf157d414747e98a463a0f32eda 09-May-2011 Greg Clayton <gclayton@apple.com> While implementing unwind information using UnwindAssemblyInstEmulation I ran
into some cleanup I have been wanting to do when reading/writing registers.
Previously all RegisterContext subclasses would need to implement:

virtual bool
ReadRegisterBytes (uint32_t reg, DataExtractor &data);

virtual bool
WriteRegisterBytes (uint32_t reg, DataExtractor &data, uint32_t data_offset = 0);

There is now a new class specifically designed to hold register values:
lldb_private::RegisterValue

The new register context calls that subclasses must implement are:

virtual bool
ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value) = 0;

virtual bool
WriteRegister (const RegisterInfo *reg_info, const RegisterValue &reg_value) = 0;

The RegisterValue class must be big enough to handle any register value. The
class contains an enumeration for the value type, and then a union for the
data value. Any integer/float values are stored directly in an appropriate
host integer/float. Anything bigger is stored in a byte buffer that has a length
and byte order. The RegisterValue class also knows how to copy register value
bytes into in a buffer with a specified byte order which can be used to write
the register value down into memory, and this does the right thing when not
all bytes from the register values are needed (getting a uint8 from a uint32
register value..).

All RegiterContext and other sources have been switched over to using the new
regiter value class.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
3063c95c54ac0303287c34f9f5af7ba7b6b8f0bc 30-Apr-2011 Greg Clayton <gclayton@apple.com> Added the start of the CFI row production using the
emulate instruction classes.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
c07d451bb046e47215bd73fda0235362cc6b1a47 27-Apr-2011 Greg Clayton <gclayton@apple.com> Got the EmulateInstruction CFI code a lot closer to producing CFI data.

Switch the EmulateInstruction to use the standard RegisterInfo structure
that is defined in the lldb private types intead of passing the reg kind and
reg num everywhere. EmulateInstruction subclasses also need to provide
RegisterInfo structs given a reg kind and reg num. This eliminates the need
for the GetRegisterName() virtual function and allows more complete information
to be passed around in the read/write register callbacks. Subclasses should
always provide RegiterInfo structs with the generic register info filled in as
well as at least one kind of register number in the RegisterInfo.kinds[] array.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
888a7334344778d1a4edbd58b5852ae4d53ffed9 26-Apr-2011 Greg Clayton <gclayton@apple.com> Changed the emulate instruction function to take emulate options which
are defined as enumerations. Current bits include:

eEmulateInstructionOptionAutoAdvancePC
eEmulateInstructionOptionIgnoreConditions

Modified the EmulateInstruction class to have a few more pure virtuals that
can help clients understand how many instructions the emulator can handle:

virtual bool
SupportsEmulatingIntructionsOfType (InstructionType inst_type) = 0;


Where instruction types are defined as:

//------------------------------------------------------------------
/// Instruction types
//------------------------------------------------------------------
typedef enum InstructionType
{
eInstructionTypeAny, // Support for any instructions at all (at least one)
eInstructionTypePrologueEpilogue, // All prologue and epilogue instructons that push and pop register values and modify sp/fp
eInstructionTypePCModifying, // Any instruction that modifies the program counter/instruction pointer
eInstructionTypeAll // All instructions of any kind

} InstructionType;


This allows use to tell what an emulator can do and also allows us to request
these abilities when we are finding the plug-in interface.

Added the ability for an EmulateInstruction class to get the register names
for any registers that are part of the emulation. This helps with being able
to dump and log effectively.

The UnwindAssembly class now stores the architecture it was created with in
case it is needed later in the unwinding process.

Added a function that can tell us DWARF register names for ARM that goes
along with the source/Utility/ARM_DWARF_Registers.h file:

source/Utility/ARM_DWARF_Registers.c

Took some of plug-ins out of the lldb_private namespace.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@130189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
dfb2e20724a90a4a10558ddaee18b72a1c51e499 22-Apr-2011 Caroline Tice <ctice@apple.com> Change code for reading emulation data files to read the new file
format. (The newly formatted files will go in as a separate commit in a
few minutes).



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
6b8d3b5e7f0507aca2ee1c0937d7ec80fa2a9c5b 20-Apr-2011 Caroline Tice <ctice@apple.com> Add the infrastructure to test instruction emulations automatically.
The idea is that the instruction to be emulated is actually executed
on the hardware to be emulated, with the before and after state of the
hardware being captured and 'freeze-dried' into .dat files. The
emulation testing code then loads the before & after state from the
.dat file, emulates the instruction using the before state, and
compares the resulting state to the 'after' state. If they match, the
emulation is accurate, otherwise there is a problem.

The final format of the .dat files needs a bit more work; the plan is
to generalize them a bit and to convert the plain values to key-value pairs.
But I wanted to get this first pass committed.

This commit adds arm instruction emulation testing to the testsuite, along with
many initial .dat files.

It also fixes a bug in the llvm disassembler, where 32-bit thumb opcodes
were getting their upper & lower 16-bits reversed.

There is a new Instruction sub-class, that is intended to be loaded
from a .dat file rather than read from an executable. There is also a
new EmulationStateARM class, for handling the before & after states.
EmulationStates for other architetures can be added later when we
emulate their instructions.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
1f954f59df9ce7bf58d0353ab0949656561210d4 11-Apr-2011 Caroline Tice <ctice@apple.com> Implement ARM emulation function to handle "SUBS PC, LR and related instructions".



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
0fe5a535b87841a5c422f4a79d55c21bf07b50ca 09-Apr-2011 Caroline Tice <ctice@apple.com> 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
/external/lldb/include/lldb/Core/EmulateInstruction.h
ea69d6ddc37e25d57973699463110b6c3233f0a0 05-Apr-2011 Caroline Tice <ctice@apple.com> Convert "process" read/write callback functions to "frame" read/write callback functions.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
080bf61255afcffd7ccfe0402d3715f77f6627b9 05-Apr-2011 Caroline Tice <ctice@apple.com> Add the rest of the mechanisms to make ARM instruction emulation usable/possible.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
d05b4903bb95b07e709986961fe387921dd0e029 29-Mar-2011 Caroline Tice <ctice@apple.com> Add subtraction context.

Add code to emulate SUB (SP minus register) ARM instruction.

Add stubs for other ARM emulation functions that need to be written.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
7bc390873f7c1c798c36c8003c4b82597f67c703 25-Mar-2011 Greg Clayton <gclayton@apple.com> Made the lldb_private::Opcode struct into a real boy... I mean class.

Modified the Disassembler::Instruction base class to contain an Opcode
instance so that we can know the bytes for an instruction without needing
to keep the data around.

Modified the DisassemblerLLVM's instruction class to correctly extract the
opcode bytes if all goes well.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
b344843f75ef893762c93fd0a22d2d45712ce74d 24-Mar-2011 Greg Clayton <gclayton@apple.com> Fixed the LLDB build so that we can have private types, private enums and
public types and public enums. This was done to keep the SWIG stuff from
parsing all sorts of enums and types that weren't needed, and allows us to
abstract our API better.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
8ce836dbf416c4dfdbede109be5cc09b95918fd0 16-Mar-2011 Caroline Tice <ctice@apple.com> Add code to emulate STRH (Register) Arm instruction.

Remove inaccurate comments from EmulateInstruction::Context definition.

Fix contexts in a few arm instruction emulation routines.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
f6aaf7de798144df2a04d6630dfa1cd0acf33350 13-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Turn labels into actual switch cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
b27771da2fe3256f4a64729ecec05946c27c1a0a 03-Mar-2011 Caroline Tice <ctice@apple.com> Add code to emulate RFE Arm instruction.

Add new instruction context for RFE instruction.

Add several new helper functions to help emulate RFE instruction
(including CurrentModeIsPrivileged, BadMode, and CPSRWriteByInstr).




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
dcc11b3b8882b3522244a25d2915c9086b44e596 03-Mar-2011 Caroline Tice <ctice@apple.com> Add code to emulate ADD (immediate, Thumb) Arm instruction.

Add addition context to EmulateInstruction contexts.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
5c1e2edcc5230fbf0995efcc32e9c0548a97a2d2 02-Mar-2011 Caroline Tice <ctice@apple.com> Add code to emulate MUL Arm instruction.

Add new context type & info structure for mul instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
60299ec172c9bbeab4e1bbffad513d75cd1741de 17-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateTB() method to emulate "Table Branch Byte" and "Table Branch Halfword"
operations for Thumb2.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
7fac857ec72051dc0a91b027719c275ea672a470 15-Feb-2011 Caroline Tice <ctice@apple.com> Add eContextRegisterLoad instruction emulation context.

Add code to emulate STR (Immediate, Thumb) instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
395fc33dc4b06c048ed35047ec461bc092ef2df3 15-Feb-2011 Greg Clayton <gclayton@apple.com> Made lldb_private::ArchSpec contain much more than just an architecture. It
now, in addition to cpu type/subtype and architecture flavor, contains:
- byte order (big endian, little endian)
- address size in bytes
- llvm::Triple for true target triple support and for more powerful plug-in
selection.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
668b45124a14cbd03e7b4965b3d86fdbf208d282 15-Feb-2011 Johnny Chen <johnny.chen@apple.com> Remove the "Register &reg" parameter from the BXWritePC(), LoadWritePC(), and ALUWritePC()
methods of EmulateInstructionARM class. The context data structure should provide sufficient
information already.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
9bfe7f219fb47d93c2b866ad5a6342a827d0dbd6 15-Feb-2011 Caroline Tice <ctice@apple.com> - Rearrange instruction emulation contexts to use a union for the
various types and numbers of arguments rather than trying to keep a
constant number of arguments for all the types.

- Also create a Register type within the instructions, to hold
register type and number.

- Modify EmulateInstructionArm.cpp to use the new register and context
types in all the instruction emulation functions.

- Add code to emulate the STM Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
fa17220ce8b3db56b05317fd5e69c450127f8538 11-Feb-2011 Caroline Tice <ctice@apple.com> - Add three more instruction contexts to EmulateInstruction:
eContextAdjustBaseRegister, eContextRegisterStore and
eContextWriteMemoryRandomBits.

- Implement a version of WriteBits32UnknownToMemory for writing to memory.

- Modify EmulateLDM, EmulateLDMDA, EmulateLDMDB and EmulateLDMIB to use the
eContextAdjustBaseRegister context when appropriate.

- Add code to emulate the STM/STMIA/STMEA Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
713c2665a27096b68f3f8956222375354f1292f8 11-Feb-2011 Caroline Tice <ctice@apple.com> Add new instruction context, eContextWriteRegisterRandomBits.

Add new utility function, WriteBits32Unknown

Modify the LDM* instruction emulation functions to call WriteBits32Unknown.
Add missing overview comments to the LDM* instruction emulation functions.

Add code to emulate LDMDA Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
9dd30d0b56d859a0ca600760e46b74a6b674672d 08-Feb-2011 Johnny Chen <johnny.chen@apple.com> Forgot to check in this file with r125059.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
17f5afe9ed10bda3efbce0f26cf0c030331f8b15 05-Feb-2011 Greg Clayton <gclayton@apple.com> Header patch, virtual dtor patch and missed UUID patch from Kirk Beitz.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
b77be414a1a4b74827f30e5944a58d4af0445ff4 04-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateInstructionARM::EmulateSVC() to the g_arm_opcodes and g_thumb_opcodes tables,
to represent the supervisor call instruction (previosuly software interrupt).


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
52fd984f7e67c3a0ab18d5565f40356bcfa84822 02-Feb-2011 Greg Clayton <gclayton@apple.com> Modified the PluginManager to be ready for loading plug-ins from a system
LLDB plugin directory and a user LLDB plugin directory. We currently still
need to work out at what layer the plug-ins will be, but at least we are
prepared for plug-ins. Plug-ins will attempt to be loaded from the
"/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/Plugins"
folder, and from the "~/Library/Application Support/LLDB/Plugins" folder on
MacOSX. Each plugin will be scanned for:

extern "C" bool LLDBPluginInitialize(void);
extern "C" void LLDBPluginTerminate(void);

If at least LLDBPluginInitialize is found, the plug-in will be loaded. The
LLDBPluginInitialize function returns a bool that indicates if the plug-in
should stay loaded or not (plug-ins might check the current OS, current
hardware, or anything else and determine they don't want to run on the current
host). The plug-in is uniqued by path and added to a static loaded plug-in
map. The plug-in scanning happens during "lldb_private::Initialize()" which
calls to the PluginManager::Initialize() function. Likewise with termination
lldb_private::Terminate() calls PluginManager::Terminate(). The paths for the
plug-in directories is fetched through new Host calls:

bool Host::GetLLDBPath (ePathTypeLLDBSystemPlugins, dir_spec);
bool Host::GetLLDBPath (ePathTypeLLDBUserPlugins, dir_spec);

This way linux and other systems can define their own appropriate locations
for plug-ins to be loaded.

To allow dynamic shared library loading, the Host layer has also been modified
to include shared library open, close and get symbol:

static void *
Host::DynamicLibraryOpen (const FileSpec &file_spec,
Error &error);

static Error
Host::DynamicLibraryClose (void *dynamic_library_handle);

static void *
Host::DynamicLibraryGetSymbol (void *dynamic_library_handle,
const char *symbol_name,
Error &error);

lldb_private::FileSpec also has been modified to support directory enumeration
in an attempt to abstract the directory enumeration into one spot in the code.
The directory enumertion function is static and takes a callback:


typedef enum EnumerateDirectoryResult
{
eEnumerateDirectoryResultNext, // Enumerate next entry in the current directory
eEnumerateDirectoryResultEnter, // Recurse into the current entry if it is a directory or symlink, or next if not
eEnumerateDirectoryResultExit, // Exit from the current directory at the current level.
eEnumerateDirectoryResultQuit // Stop directory enumerations at any level
};

typedef FileSpec::EnumerateDirectoryResult (*EnumerateDirectoryCallbackType) (void *baton,
FileSpec::FileType file_type,
const FileSpec &spec);

static FileSpec::EnumerateDirectoryResult
FileSpec::EnumerateDirectory (const char *dir_path,
bool find_directories,
bool find_files,
bool find_other,
EnumerateDirectoryCallbackType callback,
void *callback_baton);

This allow clients to specify the directory to search, and specifies if only
files, directories or other (pipe, symlink, fifo, etc) files will cause the
callback to be called. The callback also gets to return with the action that
should be performed after this directory entry. eEnumerateDirectoryResultNext
specifies to continue enumerating through a directory with the next entry.
eEnumerateDirectoryResultEnter specifies to recurse down into a directory
entry, or if the file is not a directory or symlink/alias to a directory, then
just iterate to the next entry. eEnumerateDirectoryResultExit specifies to
exit the current directory and skip any entries that might be remaining, yet
continue enumerating to the next entry in the parent directory. And finally
eEnumerateDirectoryResultQuit means to abort all directory enumerations at
all levels.

Modified the Declaration class to not include column information currently
since we don't have any compilers that currently support column based
declaration information. Columns support can be re-enabled with the
additions of a #define.

Added the ability to find an EmulateInstruction plug-in given a target triple
and optional plug-in name in the plug-in manager.

Fixed a few cases where opendir/readdir was being used, but yet not closedir
was being used. Soon these will be deprecated in favor of the new directory
enumeration call that was added to the FileSpec class.





git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
9b8d783409b5b80af2cf129c45cbc39c9544ccca 02-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateBLXImmediate() and EmulateBLXRm() to the g_arm_opcodes and g_thumb_opcodes tables,
which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h
8482dedc1d0fb4669d1ec63ec259d1cb8eaeb20f 01-Feb-2011 Greg Clayton <gclayton@apple.com> Made the EmulateInstruction class into a plug-in interface and moved the
source files around into the places they need to go.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/EmulateInstruction.h