MerryMage
dc26afbd7e
translate_arm: Translate more than one conditional instruction in a block
2016-08-25 13:05:33 +01:00
MerryMage
b5a86889cd
Implement VCVT
2016-08-23 22:20:04 +01:00
MerryMage
78464a8f01
translate_arm/vfp2: Implement VSTM (A1, A2)
2016-08-23 20:54:38 +01:00
MerryMage
af9a68f0d1
translate_arm/vfp2: Implement VLDM (A1, A2)
2016-08-23 20:07:06 +01:00
MerryMage
8c7a81a308
VPOP and VPUSH are floating-point load-store instructions
2016-08-23 14:26:50 +01:00
MerryMage
4acc481463
translate_arm/load_store: Handle unpredictable instructions
...
This necessated handling literal versions of the instructions separately
as they had different requirements. The rationale for detecting
unpredictable instructions is because:
a. they are unlikely to be outputted by a well-behaved compiler
b. their behaviour may change between different processors
I would rather unpredictable instructions fail loudly than silently do
approximately the right thing.
2016-08-19 00:59:02 +01:00
MerryMage
e164ede4dc
TranslateArm: Implement MRS, MSR (imm), MSR (reg)
2016-08-15 11:50:49 +01:00
bunnei
30f3d869cc
TranslateArm: Implement VPUSH and VPOP.
2016-08-13 19:37:03 +01:00
MerryMage
0e5593ba62
TranslateArm: Implement SETEND
2016-08-11 17:15:33 +01:00
bunnei
8e8db6e137
TranslateArm: Implement VSTR.
2016-08-10 15:01:23 +01:00
MerryMage
df39308e03
TranslateArm: Implement CLREX, LDREX, LDREXB, LDREXD, LDREXH, STREX, STREXB, STREXD, STREXH, SWP, SWPB
2016-08-09 22:57:20 +01:00
MerryMage
d0d51ba346
TranslateArm: Implement STM, STMDA, STMDB, STMIB
2016-08-08 22:49:11 +01:00
MerryMage
85549d7ae2
TranslateArm: Implement LDM, LDMDA, LDMDB, LDMIB
2016-08-08 22:26:06 +01:00
MerryMage
1af5bef32c
TranslateArm: Implement BLX (imm), BLX (reg) and BXJ
2016-08-07 20:40:31 +01:00
MerryMage
939bb5c0cb
TranslateArm: Implement NOP
2016-08-07 20:08:31 +01:00
MerryMage
e48df9d8fd
TranslateArm: Implement Hint instructions as NOPs
2016-08-07 20:04:48 +01:00
MerryMage
3a465ba4a8
VFP: Implement VLDR
2016-08-07 19:59:35 +01:00
MerryMage
a2c2db277b
VFP: Implement VMOV (all variants)
2016-08-07 19:25:12 +01:00
MerryMage
0f412247ed
VFP: Implement VSQRT
2016-08-07 12:19:07 +01:00
MerryMage
cd8e7c0504
VFP: Implement VNEG
2016-08-07 12:04:21 +01:00
MerryMage
da33af5abe
VFP: Implement VMLA, VMLS, VNMLA, VNMLS
2016-08-07 11:49:06 +01:00
MerryMage
3f1345a1a5
VFP: Implement VNMUL, VDIV
2016-08-07 10:56:12 +01:00
MerryMage
12e7f2c359
VFP: Implement VMUL
2016-08-07 10:21:14 +01:00
MerryMage
97b5fa173f
VFP: Implement VSUB
2016-08-07 01:45:52 +01:00
MerryMage
ce6b5f8210
VFP: Implement VABS
2016-08-07 01:27:18 +01:00
MerryMage
4b31ea25a7
VFP: Implement VADD.{F32,F64}
2016-08-06 20:03:15 +01:00
MerryMage
8ff414ee0e
Frontend/Decoder: 1. Remove member pointer as a template argument. 2. Sort ARM table such that unconditional instructions are on top.
2016-08-06 20:03:15 +01:00
bunnei
691e4139fa
arm: Implement B/BL/BX instructions.
2016-08-03 16:49:01 -04:00
Tillmann Karras
fc33f1d374
Implement more instructions
...
SXTB, SXTH, SXTAB, SXTAH, UXTB, UXTH, UXTAB, UXTAH, REV16
2016-08-03 00:47:17 +01:00
Tillmann Karras
30a90295b9
Implement data processing instructions
...
ADC, ADD, AND, BIC, CMN, CMP, EOR, MOV, MVN, ORR, RSB, RSC, SBC, SUB,
TEQ, TST
The code could use some serious deduplication...
2016-08-03 00:47:16 +01:00
MerryMage
a875c0c720
TranslateArm: Stub more ARM instructions
2016-08-02 21:59:33 +01:00
MerryMage
6097a21955
TranslateArm: Reorganisation - Split visitor into multiple .cpp files
2016-08-02 11:54:04 +01:00