Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add a new member variable m_new_inst_cpsr to catch the to-be-updated state | Johnny Chen | 2011-02-09 | 2 | -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 Chen | 2011-02-09 | 2 | -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 Chen | 2011-02-09 | 1 | -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 Chen | 2011-02-09 | 1 | -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 Chen | 2011-02-09 | 1 | -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 Clayton | 2011-02-09 | 1 | -3/+4 | |
| | | | | llvm-svn: 125199 | |||||
* | Add some helper methods to the EmulateInstructionARM class as a first step ↵ | Johnny Chen | 2011-02-09 | 2 | -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 Tice | 2011-02-08 | 2 | -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 Chen | 2011-02-08 | 1 | -4/+4 | |
| | | | | llvm-svn: 125138 | |||||
* | Add EmulateCB() entry to the g_thumb_opcodes table to represent "Compare and ↵ | Johnny Chen | 2011-02-08 | 2 | -12/+68 | |
| | | | | | | | | Branch on NonZero and Compare and Branch on Zero" operations. llvm-svn: 125134 | |||||
* | Add code to emulate LDMDB Arm instruction. | Caroline Tice | 2011-02-08 | 2 | -2/+143 | |
| | | | | llvm-svn: 125133 | |||||
* | Add code to emulate the LDM ARM instruction. | Caroline Tice | 2011-02-08 | 2 | -3/+152 | |
| | | | | llvm-svn: 125118 | |||||
* | Add missing implementation for "BL, BLX (immediate)" Encoding T1 and an ↵ | Johnny Chen | 2011-02-08 | 1 | -17/+41 | |
| | | | | | | | | entry for "bl <label>" into g_thumb_opcodes table. llvm-svn: 125112 | |||||
* | Add missing implementation for "BL, BLX (immediate)" Encoding A1. | Johnny Chen | 2011-02-08 | 1 | -0/+7 | |
| | | | | llvm-svn: 125103 | |||||
* | Add implementation for EmulateInstructionARM::EmulateB() and fixed two typos ↵ | Johnny Chen | 2011-02-08 | 2 | -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 Chen | 2011-02-07 | 2 | -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 Clayton | 2011-02-05 | 1 | -1/+1 | |
| | | | | llvm-svn: 124931 | |||||
* | Handle the thumb branch instructions which have their cond bits embedded in ↵ | Johnny Chen | 2011-02-05 | 1 | -0/+17 | |
| | | | | | | the instruction stream. llvm-svn: 124925 | |||||
* | Add EmulateInstructionARM::EmulateIT() to the g_thumb_opcodes table, | Johnny Chen | 2011-02-05 | 2 | -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 Chen | 2011-02-04 | 2 | -0/+88 | |
| | | | | llvm-svn: 124906 | |||||
* | Add EmulateInstructionARM::EmulateSVC() to the g_arm_opcodes and ↵ | Johnny Chen | 2011-02-04 | 2 | -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 Chen | 2011-02-02 | 2 | -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 Chen | 2011-02-01 | 1 | -34/+34 | |
| | | | | llvm-svn: 124671 | |||||
* | Add EmulateVPOP() to the g_arm_opcodes and g_thumb_opcodes tables, which ↵ | Johnny Chen | 2011-02-01 | 2 | -5/+106 | |
| | | | | | | | | represents an operation to load multiple extension registers from the stack. llvm-svn: 124670 | |||||
* | Cleaned up the EmulateInstructionARM to have the evaluate instruction | Greg Clayton | 2011-02-01 | 2 | -207/+294 | |
| | | | | | | callbacks use member functions. llvm-svn: 124636 | |||||
* | Made the EmulateInstruction class into a plug-in interface and moved the | Greg Clayton | 2011-02-01 | 2 | -0/+1354 | |
source files around into the places they need to go. llvm-svn: 124631 |