Johnny Chen
7eaacc517b
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.
llvm-svn: 125148
2011-02-09 01:00:31 +00:00
Caroline Tice
123b89b67f
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.
llvm-svn: 125139
2011-02-08 23:56:10 +00:00
Johnny Chen
108a363318
Fix typos.
...
llvm-svn: 125138
2011-02-08 23:49:37 +00:00
Johnny Chen
03feace9d0
Add EmulateCB() entry to the g_thumb_opcodes table to represent "Compare and Branch
...
on NonZero and Compare and Branch on Zero" operations.
llvm-svn: 125134
2011-02-08 23:21:57 +00:00
Caroline Tice
cdb58e1236
Add code to emulate LDMDB Arm instruction.
...
llvm-svn: 125133
2011-02-08 23:16:02 +00:00
Caroline Tice
7aa01cfd64
Add code to emulate the LDM ARM instruction.
...
llvm-svn: 125118
2011-02-08 22:24:38 +00:00
Johnny Chen
181376f29f
Add missing implementation for "BL, BLX (immediate)" Encoding T1 and an entry for "bl <label>"
...
into g_thumb_opcodes table.
llvm-svn: 125112
2011-02-08 20:36:34 +00:00
Johnny Chen
86e48b6940
Add missing implementation for "BL, BLX (immediate)" Encoding A1.
...
llvm-svn: 125103
2011-02-08 18:58:31 +00:00
Johnny Chen
a3990398a3
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()
llvm-svn: 125059
2011-02-08 00:06:35 +00:00
Johnny Chen
05a975d777
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.
llvm-svn: 125048
2011-02-07 20:11:47 +00:00
Johnny Chen
56902044a7
Handle the thumb branch instructions which have their cond bits embedded in the instruction stream.
...
llvm-svn: 124925
2011-02-05 01:39:52 +00:00
Johnny Chen
6e2acff0be
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.
llvm-svn: 124915
2011-02-05 00:46:10 +00:00
Johnny Chen
ea745e86c8
Add a utility class ITSession to maintain the ITState for the Thumb ISA.
...
llvm-svn: 124906
2011-02-04 23:02:47 +00:00
Johnny Chen
b52193787d
Add EmulateInstructionARM::EmulateSVC() to the g_arm_opcodes and g_thumb_opcodes tables,
...
to represent the supervisor call instruction (previosuly software interrupt).
llvm-svn: 124840
2011-02-04 00:40:18 +00:00
Johnny Chen
d07a57f222
Add EmulateBLXImmediate() and EmulateBLXRm() to the g_arm_opcodes and g_thumb_opcodes tables,
...
which represent "bl <label>", "blx <label>", and "blx <Rm>" instructions.
llvm-svn: 124710
2011-02-02 01:13:56 +00:00
Johnny Chen
2684ccccda
Remove the 'lldb_private::' namespace resolution operator.
...
llvm-svn: 124671
2011-02-01 18:51:48 +00:00
Johnny Chen
3d9011d6dd
Add EmulateVPOP() to the g_arm_opcodes and g_thumb_opcodes tables, which represents
...
an operation to load multiple extension registers from the stack.
llvm-svn: 124670
2011-02-01 18:35:28 +00:00
Greg Clayton
c46f94d490
Cleaned up the EmulateInstructionARM to have the evaluate instruction
...
callbacks use member functions.
llvm-svn: 124636
2011-02-01 00:49:32 +00:00
Greg Clayton
c1dfd93e1e
Made the EmulateInstruction class into a plug-in interface and moved the
...
source files around into the places they need to go.
llvm-svn: 124631
2011-02-01 00:04:43 +00:00