| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
field of
the context of eContextImmediate type, since the immediate value is known from the
argument value to WriteRegisterUnsigned() callback already.
llvm-svn: 125518
|
|
|
|
|
|
|
|
| |
and g_thumb_opcodes
tables. The corresponding EmulateMvnRdImm() method impl is empty for now.
llvm-svn: 125425
|
|
|
|
|
|
|
|
|
| |
class
instead of calling out to m_it_session.InITBlock()/LastInITBlock(), which simplifies
the coding a bit.
llvm-svn: 125421
|
|
|
|
|
|
| |
g_thumb_opcodes table.
llvm-svn: 125418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 125414
|
|
|
|
|
|
|
|
| |
emulate
CMP (register) operations.
llvm-svn: 125413
|
|
|
|
| |
llvm-svn: 125405
|
|
|
|
| |
llvm-svn: 125392
|
|
|
|
|
|
|
| |
Change the method name from *LDRRdPCRelative to *LDRRtPCRelative to be compliant
with the ARM Arch Manual which uses Rt for the destination register.
llvm-svn: 125390
|
|
|
|
| |
llvm-svn: 125379
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 125377
|
|
|
|
| |
llvm-svn: 125333
|
|
|
|
| |
llvm-svn: 125329
|
|
|
|
|
|
|
|
| |
Bit32(val, bit) and
SetBits32(uint32_t &bits, uint32_t bit, uint32_t val) to SetBit32(bits, bit, val).
llvm-svn: 125312
|
|
|
|
|
|
| |
value, const uint32_t bit).
llvm-svn: 125303
|
|
|
|
| |
llvm-svn: 125302
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes
table. Also add some more defines and convenience functions.
llvm-svn: 125300
|
|
|
|
| |
llvm-svn: 125295
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes table,
and a helper method UnalignedSupport().
llvm-svn: 125258
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
table,
and a helper method ALUWritePC(Context&, uint32_t).
llvm-svn: 125241
|
|
|
|
|
|
|
|
| |
appropriate to
effect an interworking branch if the ArchVersion() is ARMv5T and above.
llvm-svn: 125227
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
we want to record it and issue a WriteRegister callback so the clients
can track the mode changes accordingly.
llvm-svn: 125209
|
|
|
|
| |
llvm-svn: 125199
|
|
|
|
|
|
|
|
|
| |
in the
refactorings of EmulateInstructionARM.cpp file, which will be modified later to
take advantage of these helper methods.
llvm-svn: 125148
|
|
|
|
|
|
|
|
| |
Modify code for LDM and LDMDB instructions to only
create one context and to reuse it, rather than
creating multiple contexts.
llvm-svn: 125139
|
|
|
|
| |
llvm-svn: 125138
|
|
|
|
|
|
|
|
| |
Branch
on NonZero and Compare and Branch on Zero" operations.
llvm-svn: 125134
|
|
|
|
| |
llvm-svn: 125133
|
|
|
|
| |
llvm-svn: 125118
|
|
|
|
|
|
|
|
| |
entry for "bl <label>"
into g_thumb_opcodes table.
llvm-svn: 125112
|
|
|
|
| |
llvm-svn: 125103
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes
tables. EmulateB() has empty impl. and needs to be filled in later.
llvm-svn: 125048
|
|
|
|
| |
llvm-svn: 124931
|
|
|
|
|
|
| |
the instruction stream.
llvm-svn: 124925
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 124906
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes tables,
to represent the supervisor call instruction (previosuly software interrupt).
llvm-svn: 124840
|
|
|
|
|
|
|
|
| |
g_thumb_opcodes tables,
which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions.
llvm-svn: 124710
|
|
|
|
| |
llvm-svn: 124671
|
|
|
|
|
|
|
|
| |
represents
an operation to load multiple extension registers from the stack.
llvm-svn: 124670
|
|
|
|
|
|
| |
callbacks use member functions.
llvm-svn: 124636
|
|
source files around into the places they need to go.
llvm-svn: 124631
|