summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Instruction/ARM
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a new member variable m_new_inst_cpsr to catch the to-be-updated stateJohnny Chen2011-02-092-4/+7
| | | | | | | | 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. llvm-svn: 125244
* Add EmulateAddRdnRm() for EncodingT2 of ADD(register) to the g_thumb_opcodes ↵Johnny Chen2011-02-092-0/+104
| | | | | | | | table, and a helper method ALUWritePC(Context&, uint32_t). llvm-svn: 125241
* Modified existing Emulate* methods to call LoadWritePC(context, data) where ↵Johnny Chen2011-02-091-3/+6
| | | | | | | | appropriate to effect an interworking branch if the ArchVersion() is ARMv5T and above. llvm-svn: 125227
* Modified EmulatePop impl to use the helper method LoadWritePC(context, data) ↵Johnny Chen2011-02-091-1/+2
| | | | | | | | since if PC is in the list of registers to be load and we're in ARMv5T and above, this is an interworking branch. llvm-svn: 125212
* If the CPSR is changed due to switching between ARM and Thumb ISETSTATE,Johnny Chen2011-02-091-2/+19
| | | | | | | we want to record it and issue a WriteRegister callback so the clients can track the mode changes accordingly. llvm-svn: 125209
* Patch from Kirk Beitz to make things compile on MinGW minus the putenv part.Greg Clayton2011-02-091-3/+4
| | | | llvm-svn: 125199
* Add some helper methods to the EmulateInstructionARM class as a first step ↵Johnny Chen2011-02-092-12/+61
| | | | | | | | | in the refactorings of EmulateInstructionARM.cpp file, which will be modified later to take advantage of these helper methods. llvm-svn: 125148
* Add code to emulate the LDMIB Arm instruction.Caroline Tice2011-02-082-30/+127
| | | | | | | | Modify code for LDM and LDMDB instructions to only create one context and to reuse it, rather than creating multiple contexts. llvm-svn: 125139
* Fix typos.Johnny Chen2011-02-081-4/+4
| | | | llvm-svn: 125138
* Add EmulateCB() entry to the g_thumb_opcodes table to represent "Compare and ↵Johnny Chen2011-02-082-12/+68
| | | | | | | | Branch on NonZero and Compare and Branch on Zero" operations. llvm-svn: 125134
* Add code to emulate LDMDB Arm instruction.Caroline Tice2011-02-082-2/+143
| | | | llvm-svn: 125133
* Add code to emulate the LDM ARM instruction.Caroline Tice2011-02-082-3/+152
| | | | llvm-svn: 125118
* Add missing implementation for "BL, BLX (immediate)" Encoding T1 and an ↵Johnny Chen2011-02-081-17/+41
| | | | | | | | entry for "bl <label>" into g_thumb_opcodes table. llvm-svn: 125112
* Add missing implementation for "BL, BLX (immediate)" Encoding A1.Johnny Chen2011-02-081-0/+7
| | | | llvm-svn: 125103
* Add implementation for EmulateInstructionARM::EmulateB() and fixed two typos ↵Johnny Chen2011-02-082-52/+163
| | | | | | | | | | | | 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() llvm-svn: 125059
* Add EmulateInstructionARM::EmulateB entries to the g_arm_opcodes and ↵Johnny Chen2011-02-072-2/+40
| | | | | | | | g_thumb_opcodes tables. EmulateB() has empty impl. and needs to be filled in later. llvm-svn: 125048
* Header patch, virtual dtor patch and missed UUID patch from Kirk Beitz.Greg Clayton2011-02-051-1/+1
| | | | llvm-svn: 124931
* Handle the thumb branch instructions which have their cond bits embedded in ↵Johnny Chen2011-02-051-0/+17
| | | | | | the instruction stream. llvm-svn: 124925
* Add EmulateInstructionARM::EmulateIT() to the g_thumb_opcodes table,Johnny Chen2011-02-052-4/+49
| | | | | | | | | 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. llvm-svn: 124915
* Add a utility class ITSession to maintain the ITState for the Thumb ISA.Johnny Chen2011-02-042-0/+88
| | | | llvm-svn: 124906
* Add EmulateInstructionARM::EmulateSVC() to the g_arm_opcodes and ↵Johnny Chen2011-02-042-2/+65
| | | | | | | | g_thumb_opcodes tables, to represent the supervisor call instruction (previosuly software interrupt). llvm-svn: 124840
* Add EmulateBLXImmediate() and EmulateBLXRm() to the g_arm_opcodes and ↵Johnny Chen2011-02-022-4/+169
| | | | | | | | g_thumb_opcodes tables, which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions. llvm-svn: 124710
* Remove the 'lldb_private::' namespace resolution operator.Johnny Chen2011-02-011-34/+34
| | | | llvm-svn: 124671
* Add EmulateVPOP() to the g_arm_opcodes and g_thumb_opcodes tables, which ↵Johnny Chen2011-02-012-5/+106
| | | | | | | | represents an operation to load multiple extension registers from the stack. llvm-svn: 124670
* Cleaned up the EmulateInstructionARM to have the evaluate instructionGreg Clayton2011-02-012-207/+294
| | | | | | callbacks use member functions. llvm-svn: 124636
* Made the EmulateInstruction class into a plug-in interface and moved theGreg Clayton2011-02-012-0/+1354
source files around into the places they need to go. llvm-svn: 124631
OpenPOWER on IntegriCloud