History log of /external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0e191607adcb0ea8ebd06c278be648a7f5c0097f 10-May-2013 Greg Clayton <gclayton@apple.com> <rdar://problem/13854277>
<rdar://problem/13594769>

Main changes in this patch include:
- cleanup plug-in interface and use ConstStrings for plug-in names
- Modfiied the BSD Archive plug-in to be able to pick out the correct .o file when .a files contain multiple .o files with the same name by using the timestamp
- Modified SymbolFileDWARFDebugMap to properly verify the timestamp on .o files it loads to ensure we don't load updated .o files and cause problems when debugging

The plug-in interface changes:

Modified the lldb_private::PluginInterface class that all plug-ins inherit from:

Changed:

virtual const char * GetPluginName() = 0;

To:

virtual ConstString GetPluginName() = 0;

Removed:

virtual const char * GetShortPluginName() = 0;

- Fixed up all plug-in to adhere to the new interface and to return lldb_private::ConstString values for the plug-in names.
- Fixed all plug-ins to return simple names with no prefixes. Some plug-ins had prefixes and most ones didn't, so now they all don't have prefixed names, just simple names like "linux", "gdb-remote", etc.






git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
d35b7b3bfd21f4fd6b048693563eef1b772ae197 07-Dec-2012 Daniel Malea <daniel.malea@intel.com> More Linux warnings fixes (remove default labels as needed):
- as per http://llvm.org/docs/CodingStandards.html#don-t-use-default-labels-in-fully-covered-switches-over-enumerations

Patch by Matt Kopec!




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
107e53da8bdca540db8b734ed237688eaeee85c5 06-Jul-2011 Greg Clayton <gclayton@apple.com> Fixed some issues with ARM backtraces by not processing any push/pop
instructions if they are conditional. Also fixed issues where the PC wasn't
getting bit zero stripped for ARM targets when a stack frame was thumb. We
now properly call through the GetOpcodeLoadAddress() functions to make sure
the addresses are properly stripped for any targets that may decorate up
their addresses.

We now don't pass the SIGSTOP signals along. We can revisit this soon, but
currently this was interfering with debugging some older ARM targets that
don't have vCont support in the GDB server.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@134461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
04d397c5e251eaa5f520dbe6381d2a82303350e1 23-May-2011 Greg Clayton <gclayton@apple.com> Fixed an issue in the EmulateInstructionARM there the IT opcode was trying to
parse NOP instructions. I added the new table entries for the NOP for the
plain NOP, Yield, WFE, WFI, and SEV variants. Modified the opcode emulation
function EmulateInstructionARM::EmulateMOVRdSP(...) to notify us when it is
creating a frame. Also added an abtract way to detect the frame pointer
register for both the standard ARM ABI and for Darwin.

Fixed GDBRemoteRegisterContext::WriteAllRegisterValues(...) to correctly be
able to individually write register values back if case the 'G' packet is
not implemented or returns an error.

Modified the StopInfoMachException to "trace" stop reasons. On ARM we currently
use the BVR/BCR register pairs to say "stop when the PC is not equal to the
current PC value", and this results in a EXC_BREAKPOINT mach exception that
has 0x102 in the code.

Modified debugserver to create the short option string from long option
definitions to make sure it doesn't get out of date. The short option string
was missing many of the newer short option values due to a modification of
the long options defs, and not modifying the short option string.





git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
8d24b4a3a3351a0db1dabfaf26bdf2eae16b1775 31-Mar-2011 Caroline Tice <ctice@apple.com> Fix a few typos in the previous commit.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
93767b8fceecd605d3e3dc3803b7d51823f17b2f 31-Mar-2011 Caroline Tice <ctice@apple.com> Add code to emulate VLD1 (single element to all lanes) ARM instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
4f6055840a3d5006a60d54c139b1f8975ed0c638 31-Mar-2011 Caroline Tice <ctice@apple.com> Modify ARM instruction tables to allow for specifying floating point variants.

Add code to emulate VLDM ARM instruction (loading multiplt floating point registers).

Add function declarations for other floating point instructions to emulate.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
c08ed3840e47b2e26ddffe0154b21840c80c91df 30-Mar-2011 Caroline Tice <ctice@apple.com> Fill in code in EmulateADDRegShift, to emulate the ADD
(register-shifted register) ARM instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1 08-Mar-2011 Greg Clayton <gclayton@apple.com> LLDB now has "Platform" plug-ins. Platform plug-ins are plug-ins that provide
an interface to a local or remote debugging platform. By default each host OS
that supports LLDB should be registering a "default" platform that will be
used unless a new platform is selected. Platforms are responsible for things
such as:
- getting process information by name or by processs ID
- finding platform files. This is useful for remote debugging where there is
an SDK with files that might already or need to be cached for debug access.
- getting a list of platform supported architectures in the exact order they
should be selected. This helps the native x86 platform on MacOSX select the
correct x86_64/i386 slice from universal binaries.
- Connect to remote platforms for remote debugging
- Resolving an executable including finding an executable inside platform
specific bundles (macosx uses .app bundles that contain files) and also
selecting the appropriate slice of universal files for a given platform.

So by default there is always a local platform, but remote platforms can be
connected to. I will soon be adding a new "platform" command that will support
the following commands:
(lldb) platform connect --name machine1 macosx connect://host:port
Connected to "machine1" platform.
(lldb) platform disconnect macosx

This allows LLDB to be well setup to do remote debugging and also once
connected process listing and finding for things like:
(lldb) process attach --name x<TAB>

The currently selected platform plug-in can now auto complete any available
processes that start with "x". The responsibilities for the platform plug-in
will soon grow and expand.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@127286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
0491b3b75e1b045ab548f77fd1f76035522debde 28-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate LDRH (immediate, Thumb) arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
59e6ab70eb0a623fc667f7db9b27007e13b315e2 24-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation for BXJ (Branch and Exchange Jazelle), assuming that the attempt to
switch to Jazelle state fails, thus treating BXJ as a BX operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
b9f02cfcd7d85e74981bf7790dce15d9bd1d4df6 24-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for Bitwise Bit Clear (immediate and register) operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
15a7a6b9b624e5b8a2b058befc4e04aae72ff9c0 24-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "SUB (immediate, Thumb)" and "SUB (immediate, ARM)" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
a695f958db37c102d480a9c0780abec262ba8332 23-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation for "ADR" operations. Add a ThumbImm8Scaled() convenience function
and rename the original ThumbImmScaled() function to ThumbImm7Scaled().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
c9e747f4efa320e366498f02bb9dd791cf86623b 23-Feb-2011 Johnny Chen <johnny.chen@apple.com> Modify EmulateSUBSPImm() to handle the cases with generic Rd value instead of
Rd == 13. Add opcode entries for the generic "sub (sp minus immediate)" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
9b381775c532270fd07a90aa1a98750546a768b7 23-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "SBC (immediate)" and "SBC (register)" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
90e607bfccc74572e8422ea85d20f10db6f936b9 23-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "RSC (immediate)" and "RSC (register)" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
ed32e7cdec9c0c88ad40c9ed3d05e7604599a563 23-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "RSB (immediate)" and "RSB (register)".
Plus add missing break stmts for "case" blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
34075cb14fb56cb350e71cc696179ab0f2744423 22-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add ARM encoding entries for "CMP (immediate)" and "CMP (register)" operations.
Add ARM/Thumb encoding entries for "CMN (immediate)" and "CMN (register)" operations,
with the EmulateCMNImm()/Reg() methods not implemented yet for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
d642a6ad6b8e3822485a8a08fbbfa8b60a4e97f2 22-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "MVN (immediate)" and "MVN (register)".


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
2115b4131b0e427341959fb4007e0173bf71778d 22-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "EOR (Immediate)", "EOR (register)",
"TEQ (immediate)", and "TEQ (register)" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
de3cce3aa8e10c9e328e15b9210069b77f840b70 21-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "TST (immediate)" and "TST (register)".
Plus modified EmulateANDImm/Reg to delegate to TSTImm/Reg for Thumb2
32-bit instructions when Rd == '1111' and setflags is true.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
30fec12a2c2f0fe75c78e9b9f791bc53cd92cdfd 19-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate LDRB (register) Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
157b959b101cbdddb81a690d00ff0697540d83e7 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "ADC (immediate)" and "ADC (register)".
Plus add a helper method ReadCoreReg(uint32_t regnum, bool *success) to simplify
coding a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
e97c0d5ea7b614b1fb257f63591e122e5651227c 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for "AND (immediate)" and "AND (register)".
Plus add macro definitions for APSR_C and APSR_V to simplify code.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
8fa2059234b17e9c377eea49b01f0ea084f66843 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation of Encoding A1 "A8.6.6 ADD (register)" and "A8.6.5 ADD (immediate, ARM)".


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
864a8e86b9e89d0f52b5020ace524eefebc9b9af 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Finished renamings to make the emulation method names consistent case-wise.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
9f687729f0a2fff5dde65ce789c3a02e84c2ffcc 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Some renamings to make the emulation method names consistent case-wise.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
4e19e62fa6e0ffabf5b5d235b52e8f229faf2bd0 18-Feb-2011 Johnny Chen <johnny.chen@apple.com> Removed redundant entry EmulateTBB() (there's an existing one EmulateTB()) and fixed some typos
in section headings.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
e311f44d0347e955cc2306c08290b1b0f503387c 18-Feb-2011 Caroline Tice <ctice@apple.com> Add header declarations for the remaining instructions we need to
emulate, to cover those that can change the PC.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
10530c2f7bc5030f59563fb877510a218c9cea8f 17-Feb-2011 Johnny Chen <johnny.chen@apple.com> Refactoring. Abstracted the set flags operation into its own helper method
WriteFlags() and renamed WriteCoreRegisterWithFlags() to WriteCoreRegOptionalFlags().
Modified the call sites to use the helper methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
d761dcf991d66ab1d686f874270ba3c8cc9ff28c 17-Feb-2011 Johnny Chen <johnny.chen@apple.com> A8.6.6 ADD (register)

Renamed EmulateAddRdnRm() to EmulateAddReg(), and added Encoding T1 to it.
Where Encoding T2 can potentially modify the PC, causing a brnach.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
cc96eb5967d878e8225ce61c645eb47857fbb3f2 17-Feb-2011 Caroline Tice <ctice@apple.com> Add stubs for pseudocode functions "MemA[]" amd "MemU[]", corresponding to aligned
and unaligned memory accesses. The new stub functions are MemARead, MemAWrite,
MemURead, and MemUWrite. At the moment these stubs just call ReadMemoryUnsigned or
WriteMemoryUnsigned, but we can fill them out further later if we decide we need
more accurate emulation of the memory system.

Replaced all the direct calls to ReadMemoryUnsigned and WriteMemoryUnsigned in
EmulateInstructionARM.cpp with calls to the appropriate new stub function.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
761d607aa4268797e10310c5806464406e7f9472 17-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add comment for the helper method WriteCoreRegisterWithFlags().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
ca67d1c9572ad3890aa73863969a4b664f7781bc 17-Feb-2011 Johnny Chen <johnny.chen@apple.com> Refactoring. Wrap the following pseudocode from the ARM Architecture Reference Manul:

// if d == 15 then // Can only occur for encoding A1
// ALUWritePC(result); // setflags is always FALSE here
// else
// R[d] = result;
// if setflags then
// APSR.N = result<31>;
// APSR.Z = IsZeroBit(result);
// APSR.C = carry;
// // APSR.V unchanged

into a helper method WriteCoreRegisterWithFlags, and modified the existing methods
to take advantage of it.

Plus add two emulation methods (declaration only for now) for ORR (immediate) and ORR (register).


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
eeab485b0c1197bc4f483a9fdd7d2489703cb5ab 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for ROR (immediate), ROR (register), and RRX.
Turns out that they can be funneled through the helper methods
EmulateShiftImm()/ EmulateShiftReg() as well.

Modify EmulateShiftImm() to handle SRType_ROR and SRType_RRX.
And fix a typo in the impl of utility Shift_C() in ARMUtils.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
73a29de4b8f59594fd7a559c05fa795afe754551 16-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate STRB (Thumb) instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
225589ecc86ebce5414931e9fbabaafc75da95a8 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add tagging for EmulateLDRRtRnImm().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
56886d25fb115d3550e3d60ee2e617b4bdb8847c 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Minor comment change.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
41a0a15df85a0d4b428c13dff8606a064f5d8dfe 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add emulation methods for LSL (immediate), LSL (register), LSR (immediate), and LSR (register).
Create two helper methods EmulateShiftImm() and EmulateShiftReg() and have ASR, LSL, and LSR
delegate to the helper methods which take an extra ARM_ShifterType parameter.

The opcodes tables have not been updated yet to reflect these new entries.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
3fd63e92ed8fda0007ad645ee3bf6b040f41e71e 16-Feb-2011 Caroline Tice <ctice@apple.com> Add documentation tags for LDM/STM instruction families.

Add code to emulate STR (register) Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
68cacf7eab5609a773d5090182e827ae9f4e7032 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Section heading for EmulateB().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
a480df95c4f60e73f10b1df3a2579b1248fd7614 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add section headings corresponding to some of the ARM/Thumb emulation methods for better documentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
e7f8953988d593882971e4134f8423f4af1cffaa 16-Feb-2011 Johnny Chen <johnny.chen@apple.com> A8.6.14 ASR (register)

Add EmulateASRReg() Encodings T1, T2, and A1 to the opcodes tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
82f16aa9f19678ffa20b92a8df926e933940d34d 15-Feb-2011 Johnny Chen <johnny.chen@apple.com> A8.6.14 ASR (immediate)

Add EmulateASRImm() Encodings T1, T2, and A1 to the opcodes tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
af556564f80fd417a9158754f5e2ee692e183f6d 15-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate STMIB Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
b6f8d7ec6f0a91a805d4ffa0f6fe8dcd1ae5c4d3 15-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate STMDB Arm instruction.

Add some bit-mask fixes to code for getting register bits for various LDM and STM instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
1511f50f447c36af933d10910bc3d6cd1f41bfd3 15-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate the STMDA Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
357c30f55eeeca5df8434831c8963ef8fc109227 14-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add entries for EmulateMovRdImm() -- "MOV (immediate)" -- Encodings T1 & T2 into g_thumb_opcodes
table. Modify EmulateInstructionARM::EvaluateInstruction() so that if the cpsr has changed
during evaluate instruction, we flush out the change into m_inst_cpsr in preparation for the next
instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
28070c30cc87cc9679bb35bc11c42d0cc6ed4b0e 12-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add entries for Encodings T1 and A1 of "MVN (immediate)" to g_arm_opcodes and g_thumb_opcodes
tables. The corresponding EmulateMvnRdImm() method impl is empty for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
098ae2d54f9b1613e85ecb5f3d0808f102a97859 12-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add helper methods InITBlock() and LastInITBlock() to EmulateInstructionARM class
instead of calling out to m_it_session.InITBlock()/LastInITBlock(), which simplifies
the coding a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
ab3b3514b639d2cab1cd6c71c317e12059717a17 12-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateBXRm() ("Branch and Exchange") to both g_arm_opcodes and g_thumb_opcodes table.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
e4a4d301f3a06539098608749c55afaec063fca9 11-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateCmpRnRm() for Encodings T1 & T2 to the g_thumb_opcodes table to emulate
CMP (register) operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
c9de910d61f0471d18fced716fc10681ef432010 11-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add Thumb2 LDR (literal) instruction into the g_thumb_opcodes table.
Change the method name from *LDRRdPCRelative to *LDRRtPCRelative to be compliant
with the ARM Arch Manual which uses Rt for the destination register.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
d4dc4444e124b290cbe30cdaade7e97161fa47c8 11-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add an entry for CMP (immediate) (Encoding T1) to the g_thumb_opcodes table.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
bf6ad173895183797cbd0ebd18710b2364a2c4c8 11-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a helper method AddWithCarry() to the EmulateInstructionARM class.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
338bf54a49633d90f3c5e808847470901f25dee9 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a generic EmulateMovRdRm() method and modify/add entries to the g_thumb_opcodes
table. Also add some more defines and convenience functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
ef21b59059720fb14bf169f08c3cc3ffc2c598c8 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateLDRRtRnImm() for EncodingT1 of LDR (immediate, Thumb) to the g_thumb_opcodes table,
and a helper method UnalignedSupport().


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
558133bb1d2d89dd4618259ce27b5c06f3970b48 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a new member variable m_new_inst_cpsr to catch the to-be-updated state
of the CPSR during the course of executing an opcode, and modified SelectInstrSet()
to update this variable instead of the original m_inst_cpsr, which should be
the cached copy of the CPSR at the beginning of executing the opcode.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
26863dc1d68712415ed56c9953f6fed79b38e131 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateAddRdnRm() for EncodingT2 of ADD(register) to the g_thumb_opcodes table,
and a helper method ALUWritePC(Context&, uint32_t).


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
ee9b1f7a1b52427f8ac3ae43d8064f10add803b1 09-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add some helper methods to the EmulateInstructionARM class as a first step in the
refactorings of EmulateInstructionARM.cpp file, which will be modified later to
take advantage of these helper methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
85aab33e2d866be406aa0ecc96cd37aa7a46a35c 09-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate the LDMIB Arm instruction.

Modify code for LDM and LDMDB instructions to only
create one context and to reuse it, rather than
creating multiple contexts.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
53ebab7a7bed312c496a49d52b225a01a1a02e89 09-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateCB() entry to the g_thumb_opcodes table to represent "Compare and Branch
on NonZero and Compare and Branch on Zero" operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
0b29e24ecd86048ac5d722dc964e55bab49f72aa 09-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate LDMDB Arm instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
b9f76c33ab97dcef2e9c1dbc471097edd6b98a86 08-Feb-2011 Caroline Tice <ctice@apple.com> Add code to emulate the LDM ARM instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
9ee056bb17843e8c757461dbf56c49e8de99a65e 08-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add implementation for EmulateInstructionARM::EmulateB() and fixed two typos in g_thumb_opcodes
as pointed out By Caroline. Refactored a little bit by adding two new helper methods to the
EmulateInstructionARM class:

o BranchWritePC()
o BXWritePC()


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
3b620b38cd170c20ea607585021ab2ab50286943 07-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateInstructionARM::EmulateB entries to the g_arm_opcodes and g_thumb_opcodes
tables. EmulateB() has empty impl. and needs to be filled in later.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
c315f860b343cf4a143f43c7d570d151989abb46 05-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateInstructionARM::EmulateIT() to the g_thumb_opcodes table,
to represent the the 'If Then' instruction which makes up to four following
instructions (the IT block)conditional.

Hook up ITSession utility class as a member variable of EmulateInstructionARM.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
930704795c783e5bf1768a43da6f957108b40873 05-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a utility class ITSession to maintain the ITState for the Thumb ISA.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
587a0a4e5341bac8a8936b84fc73d6a7e8ada46f 01-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add EmulateVPOP() to the g_arm_opcodes and g_thumb_opcodes tables, which represents
an operation to load multiple extension registers from the stack.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
2b8e8b0d1ea00d0076ac20568c2ce2a2a1fe0240 01-Feb-2011 Greg Clayton <gclayton@apple.com> Cleaned up the EmulateInstructionARM to have the evaluate instruction
callbacks use member functions.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.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/source/Plugins/Instruction/ARM/EmulateInstructionARM.h