-
f64c8bafd2
ARM: BXJ should be BX when there is no J support
Ali Saidi
2010-06-02 12:58:12 -05:00
-
1fcd389fa3
ARM: Make sure macroops aren't interrupted midinstruction.
Gabe Black
2010-06-02 12:58:12 -05:00
-
67766cbf17
ARM: Fix the implementation of the VFP ldm and stm macroops.
Gabe Black
2010-06-02 12:58:12 -05:00
-
d149e43c41
Simple CPU: Make the FloatRegs trace flag do something.
Gabe Black
2010-06-02 12:58:12 -05:00
-
ad9c5af945
ARM: Fix up thumb decoding of coproc instructions.
Gabe Black
2010-06-02 12:58:12 -05:00
-
dea707704f
ARM: Clean up some redundancy and fault behavior for unimplemented thumb MCR, MRC.
Gabe Black
2010-06-02 12:58:12 -05:00
-
b504b44b2f
CPU: Reset fetch offset after a exception
Ali Saidi
2010-06-02 12:58:12 -05:00
-
943b77b9bb
ARM: Decode the VLDR instruction.
Gabe Black
2010-06-02 12:58:12 -05:00
-
4f130683e0
ARM: Implement the VLDR instruction.
Gabe Black
2010-06-02 12:58:12 -05:00
-
dbec303864
ARM: Decode all the various forms of vmov.
Gabe Black
2010-06-02 12:58:12 -05:00
-
ff3996b24d
ARM: Make VFP load/store and 64 bit move decode correspond with CP10 and CP11.
Gabe Black
2010-06-02 12:58:12 -05:00
-
dd1aedc98b
ARM: Implement the various versions of VMOV.
Gabe Black
2010-06-02 12:58:12 -05:00
-
1f059541d6
ARM: Add a new RegImmOp base class.
Gabe Black
2010-06-02 12:58:12 -05:00
-
6976b4890a
ARM: Add a RegRegImmOp base class.
Gabe Black
2010-06-02 12:58:12 -05:00
-
186cfe3ae3
ARM: Widen the immediate fields in the misc instruction classes.
Gabe Black
2010-06-02 12:58:12 -05:00
-
b87ebf382f
ARM: Add a function to decode VFP modified immediate constants.
Gabe Black
2010-06-02 12:58:12 -05:00
-
7eb4d02dd9
ARM: Add a function to decode SIMD modified immediate constants.
Gabe Black
2010-06-02 12:58:12 -05:00
-
abda50173c
ARM: Add fp operands to operands.isa.
Gabe Black
2010-06-02 12:58:12 -05:00
-
6365d29c21
ARM: Decode the VMRS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
fbf2ad5ae8
ARM: Update the set of FP related miscregs.
Gabe Black
2010-06-02 12:58:11 -05:00
-
aade63a8fe
ARM: Implement the VMRS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
a8b56b452c
ARM: Decode the VMSR instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
06008c54eb
ARM: Implement the VMSR instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
0ff71c7c34
ARM: Decode 8, 16, and 32 bit transfers between core and extension (fp) registers.
Gabe Black
2010-06-02 12:58:11 -05:00
-
c9c4dfc09d
ARM: Ignore attempts to disable coprocessors that aren't implemented anyway.
Gabe Black
2010-06-02 12:58:11 -05:00
-
c3bf29bbea
ARM: Implement the udiv instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
f3e65c2de2
ARM: Implement the sdiv instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
5943f0fc84
ARM: Ignore writing a bad mode to CPSR with MSR.
Gabe Black
2010-06-02 12:58:11 -05:00
-
ba33db8fd6
ARM: Decode the CPS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
7861b084f6
ARM: Implement the CPS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
eb1447302d
ARM: Decode the SRS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
bb6fea91da
ARM: Implement the SRS instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
dbee6e0c54
ARM: Add a base class for SRS.
Gabe Black
2010-06-02 12:58:11 -05:00
-
239c9af90d
ARM: Implement a badMode function that says whether a mode is legal.
Gabe Black
2010-06-02 12:58:11 -05:00
-
a5ea52bb45
ARM: Allow flattening into any mode.
Gabe Black
2010-06-02 12:58:11 -05:00
-
698ee26c6b
ARM: Decode TBB and TBH.
Gabe Black
2010-06-02 12:58:11 -05:00
-
6fa713a66c
ARM: Decode the setend instruction.
Gabe Black
2010-06-02 12:58:11 -05:00
-
4683cd1655
ARM: Define the setend instruction.
Gabe Black
2010-06-02 12:58:10 -05:00
-
fb23297914
ARM: Make a base class for instructions that use only an immediate.
Gabe Black
2010-06-02 12:58:10 -05:00
-
247acd93c4
ARM: Decode the arm version of ldrexd.
Gabe Black
2010-06-02 12:58:10 -05:00
-
3ad31f61c2
ARM: Decode the strex instructions.
Gabe Black
2010-06-02 12:58:10 -05:00
-
54ab07e636
ARM: Implement the strex instructions.
Gabe Black
2010-06-02 12:58:10 -05:00
-
524a8195e1
ARM: Set CPSR.E to SCTLR.EE on faults.
Gabe Black
2010-06-02 12:58:10 -05:00
-
683421e0c6
ARM: Warn about not implementing MPU translation, not panic about MMU.
Gabe Black
2010-06-02 12:58:10 -05:00
-
6fb5189c47
ARM: Ignore/warn on accesses to the DRBAR, DRACR, and DRSR registers.
Gabe Black
2010-06-02 12:58:10 -05:00
-
89b1dd5582
ARM: Allow access to the RGNR register.
Gabe Black
2010-06-02 12:58:10 -05:00
-
c3381167c9
ARM: Make the MPUIR register report that 1 unified data region is supported.
Gabe Black
2010-06-02 12:58:10 -05:00
-
3aa8faf177
ARM: Ignore/warn on accesses to the BPIALLIS and BPIALL registers.
Gabe Black
2010-06-02 12:58:10 -05:00
-
faf6c727f6
ARM: Respect the E bit of the CPSR when doing loads and stores.
Gabe Black
2010-06-02 12:58:10 -05:00
-
b6cb6f1874
ARM: Zero the micropc when vectoring to a fault.
Gabe Black
2010-06-02 12:58:10 -05:00
-
1d5233958a
ARM: Implement the V7 version of alignment checking.
Gabe Black
2010-06-02 12:58:10 -05:00
-
7b397925af
ARM: Decode the RFE instruction.
Gabe Black
2010-06-02 12:58:10 -05:00
-
a2cb503ba6
ARM: Implement the RFE instruction.
Gabe Black
2010-06-02 12:58:10 -05:00
-
ec4cd00b11
ARM: Add a base class for the RFE instruction.
Gabe Black
2010-06-02 12:58:10 -05:00
-
1ada9d4880
ARM: Make sure some undefined thumb32 instructions fault.
Gabe Black
2010-06-02 12:58:10 -05:00
-
3caa75d53a
ARM: Squash the low order bits of the PC when performing a regular branch.
Gabe Black
2010-06-02 12:58:10 -05:00
-
36eeee0133
ARM: When changing the CPSR and branching, make sure the branch is second.
Gabe Black
2010-06-02 12:58:09 -05:00
-
68f2908a70
ARM: Ignore/warn when CSSELR or CCSIDR are accessed.
Gabe Black
2010-06-02 12:58:09 -05:00
-
741b243260
ARM: Ignore/warn access to the bpimva registers.
Gabe Black
2010-06-02 12:58:09 -05:00
-
8a7f60194e
ARM: Ignore/warn on accesses to the dccmvac register.
Gabe Black
2010-06-02 12:58:09 -05:00
-
89133b15da
ARM: Decode the enterx and leavex instructions.
Gabe Black
2010-06-02 12:58:09 -05:00
-
6a4ea7cca9
ARM: Implement the enterx and leavex instructions.
Gabe Black
2010-06-02 12:58:09 -05:00
-
eb0823c4f2
ARM: Fix the implementation of BX to work in thumbEE mode.
Gabe Black
2010-06-02 12:58:09 -05:00
-
bb0d390105
ARM: When an instruction is intentionally undefined, fault on it.
Gabe Black
2010-06-02 12:58:09 -05:00
-
61a5e71be7
ARM: Decode the thumb version of the ldrd and strd instructions.
Gabe Black
2010-06-02 12:58:09 -05:00
-
9d4a1bf2ba
ARM: Explicitly keep track of the second destination for double loads/stores.
Gabe Black
2010-06-02 12:58:09 -05:00
-
28023f6f3d
ARM: Decode the thumb32 load byte/memory hint instructions.
Gabe Black
2010-06-02 12:58:09 -05:00
-
7a9dcdf99f
ARM: Decode the load halfword, memory hints instructions for 32 bit Thumb.
Gabe Black
2010-06-02 12:58:09 -05:00
-
a483d44d9f
ARM: Ignore/warn on accesses to icimvau.
Gabe Black
2010-06-02 12:58:09 -05:00
-
630f309a77
ARM: Ignore/warn on iciallu.
Gabe Black
2010-06-02 12:58:09 -05:00
-
d618121670
ARM: Ignore/warn on ICIALLUIS.
Gabe Black
2010-06-02 12:58:09 -05:00
-
e658b6fed4
ARM: Add support for the clidr register.
Gabe Black
2010-06-02 12:58:09 -05:00
-
896c7617c4
ARM: Decode the unimplemented data barrier CP15 accesses.
Gabe Black
2010-06-02 12:58:09 -05:00
-
af6b1667e9
ARM: Implement a stub of CPACR.
Gabe Black
2010-06-02 12:58:09 -05:00
-
660270746b
ARM: Actually write the value of sctlr in ISA.clear().
Gabe Black
2010-06-02 12:58:08 -05:00
-
6c9ab5d898
ARM: Replace the ARM decode of CP15 MCR and MRC instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
35f0c01fea
ARM: Decode the unimplemented cp15 instruction barrier.
Gabe Black
2010-06-02 12:58:08 -05:00
-
7932b86298
ARM: Ignore accesses to DCCIMVAC.
Gabe Black
2010-06-02 12:58:08 -05:00
-
6ae4d34a12
ARM: Allow accesses to the software thread id registers.
Gabe Black
2010-06-02 12:58:08 -05:00
-
54850e4d23
ARM: Allow accesses to the contextidr register.
Gabe Black
2010-06-02 12:58:08 -05:00
-
221e0ac523
ARM: Warn about and ignore accesses to DCCISW.
Gabe Black
2010-06-02 12:58:08 -05:00
-
8c1be04af6
ARM: Decode the thumb versions of the mcr and mrc instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
625a43e7c7
ARM: Implement the mrc and mcr instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
6c1b10043f
ARM: Rename the RevOp base class to something more generic.
Gabe Black
2010-06-02 12:58:08 -05:00
-
f9d1bba22a
ARM: Add a version of the Dest and Op1 operands for accessing the MiscRegs.
Gabe Black
2010-06-02 12:58:08 -05:00
-
6aa229386d
ARM: Implement a function to decode CP15 registers to MiscReg indices.
Gabe Black
2010-06-02 12:58:08 -05:00
-
7ff24c8777
ARM: Decode the bfi and bfc instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
a37b6b6bce
ARM: Implement the bfc and bfi instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
5a63887617
ARM: Decode the ubfx and sbfx instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
2e717558e2
ARM: Decode miscellaneous arm mode media instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
09cc401848
ARM: Implement the ubfx and sbfx instructions.
Gabe Black
2010-06-02 12:58:08 -05:00
-
b1158e4938
ARM: Add a register, immediate, immediate to register base for [su]bfx.
Gabe Black
2010-06-02 12:58:08 -05:00
-
504ac6518b
ARM: Decode the clz instruction.
Gabe Black
2010-06-02 12:58:08 -05:00
-
2c94bf7f30
ARM: Implement the clz instruction.
Gabe Black
2010-06-02 12:58:08 -05:00
-
00320a53ab
ARM: Decode the rbit instruction.
Gabe Black
2010-06-02 12:58:07 -05:00
-
5cc1bb6842
ARM: Implement the rbit instruction.
Gabe Black
2010-06-02 12:58:07 -05:00
-
566b2ff20c
ARM: Decode the nop instruction.
Gabe Black
2010-06-02 12:58:07 -05:00
-
b9cfe9a3db
ARM: Implement nop.
Gabe Black
2010-06-02 12:58:07 -05:00
-
a2d8dcebba
ARM: Decode the ldrex instruction.
Gabe Black
2010-06-02 12:58:07 -05:00
-
952253483b
ARM: Rearrange the load/store double/exclusive, table branch thumb decoding.
Gabe Black
2010-06-02 12:58:07 -05:00