Commit graph

2264 commits

Author SHA1 Message Date
MerryMage
158a13173c thumb32: Implement AND (reg) 2021-03-06 19:49:44 +00:00
MerryMage
c253b8fc51 thumb32: Implement TST (reg) 2021-03-06 19:49:44 +00:00
merry
ea5d8a3047
Merge pull request #584 from lioncash/loads
thumb32: Implement Thumb-2 Load Byte and Memory Hints instructions
2021-03-06 17:31:45 +00:00
MerryMage
531bb42ab5 thumb32: Implement B (T3) 2021-03-06 17:29:55 +00:00
MerryMage
86aa3f0701 thumb32: Implement B (T4) 2021-03-06 17:27:54 +00:00
Lioncash
52fdf801d0 thumb32: Implement LDRSB variants 2021-03-06 11:33:33 -05:00
Lioncash
fe892732cf thumb32: Implement LDRB variants 2021-03-06 11:06:30 -05:00
Lioncash
c66afadbc1 thumb32: Implement PLI variants 2021-03-06 09:55:29 -05:00
Lioncash
b2802aaf17 thumb32: Implement PLD variants 2021-03-06 09:36:51 -05:00
Lioncash
ee99fa69e9 thumb32: Add load source files
Places all the skeleton files in place.
2021-03-06 09:13:05 -05:00
Lioncash
47ab3a1450 CMakeLists: Add decoder .inc files
This makes them show up in IDE generators like XCode.
2021-03-05 21:00:31 -05:00
merry
f09e400858
Merge pull request #582 from lioncash/pbi
thumb32: Implement most plain binary immediate instructions
2021-03-05 23:20:58 +00:00
MerryMage
67e954a4cf thumb32_data_processing_plain_binary_immediate: Make invalid {S,U}SSAT16 decode undefined 2021-03-02 20:54:19 +00:00
MerryMage
52a9af3dca CMakeLists: Rework architecture detection
* Also only enable xybak/vixl on appropriate architectures
2021-03-02 20:41:38 +00:00
merry
3d418e9a4f
Merge pull request #583 from lioncash/str
thumb32: Implement STRB/STRH/STR (register)
2021-03-02 02:19:47 +00:00
Lioncash
2ac615b882 thumb32: Implement SSAT/USAT 2021-03-01 15:59:52 -05:00
Lioncash
5601aa554e thumb32: Implement STRB/STRH/STR (register) 2021-03-01 15:41:49 -05:00
MerryMage
170ab30b8e thumb32: Implement RSB (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
8d33de2dcc thumb32: Implement SUB (immediate, T3) 2021-02-28 21:49:14 +00:00
MerryMage
8efb2a5b05 thumb32: Implement CMP (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
78330e634f thumb32: Implement SBC (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
e6b925146b thumb32: Implement ADC (immediate) 2021-02-28 21:49:14 +00:00
MerryMage
8f9e052c93 thumb32: Implement ADD (imm, T3) 2021-02-28 21:49:14 +00:00
MerryMage
30442ee1f4 thumb32: Implement CMN (immediate) 2021-02-28 21:49:14 +00:00
merry
421548ceef
Merge pull request #581 from lioncash/8dot6
a64: Add v8.6 instruction encoding additions
2021-02-27 21:54:08 +00:00
Lioncash
385f907463 a64: Add v8.6 instruction encoding additions
Keeps the instruction listing up to date.
2021-02-27 16:25:13 -05:00
Lioncash
9d5505422f thumb32: Implement ADD/SUB (imm 2) 2021-02-25 09:56:05 -05:00
Lioncash
68885fdb3c thumb32: Implement SBFX/UBFX 2021-02-25 09:37:15 -05:00
Lioncash
7334914047 thumb32: Implement BFC/BFI 2021-02-25 09:27:05 -05:00
Lioncash
ba7cbe7cf6 thumb32: Implement SSAT16/USAT16 2021-02-25 09:13:46 -05:00
Lioncash
725d712c88 thumb32: Simplify register shift implementations to common function 2021-02-23 04:53:50 -05:00
Lioncash
a7a9ed69b7 thumb32: Implement ROR (register) 2021-02-23 04:52:29 -05:00
Lioncash
abf3548b2a thumb32: Implement ASR (register) 2021-02-23 04:43:11 -05:00
Lioncash
e06d4bcbb2 thumb32: Implement LSR (register) 2021-02-23 04:40:43 -05:00
Lioncash
fdd379a36c thumb32: Implement LSL (register) 2021-02-23 04:40:40 -05:00
merry
ac32175eff
Merge pull request #579 from lioncash/bxj
thumb32: Implement BXJ
2021-02-22 15:01:08 +00:00
Lioncash
89838c5ce4 thumb32: Implement BXJ
We handle this as a regular BX call, given we don't support Jazelle.
2021-02-22 07:45:21 -05:00
Lioncash
de8e977bb1 thumb32: Implement SEVL 2021-02-22 07:34:42 -05:00
Lioncash
a4c9ec645f thumb32: Implement SEV 2021-02-22 07:34:42 -05:00
Lioncash
565a20b096 thumb32: Implement WFI 2021-02-22 07:34:42 -05:00
Lioncash
3dc33c1257 thumb32: Implement WFE 2021-02-22 07:34:42 -05:00
Lioncash
48fe7afe72 thumb32: Implement YIELD 2021-02-22 07:34:42 -05:00
Lioncash
a73ea9e111 thumb32: Implement NOP 2021-02-22 07:34:39 -05:00
MerryMage
29d7cbd899 thumb32: Ensure CPSR.IT state is always up to date 2021-02-22 00:27:16 +00:00
MerryMage
f5dd7122a2 EmitFPVectorMulAdd: Correct optimization flag (Unsafe_UnfuseFMA -> Unsafe_InaccurateNaN) 2021-02-21 21:30:20 +00:00
merry
75f4978da5
Merge pull request #577 from lioncash/barrier
thumb32: Implement barrier instructions and CLREX
2021-02-19 22:51:13 +00:00
Lioncash
3890590b4f thumb32: Implement CLREX 2021-02-19 00:02:57 -05:00
Lioncash
5543e4f9eb thumb32: Implement ISB 2021-02-19 00:01:24 -05:00
Lioncash
085147b5a4 thumb32: Implement DMB 2021-02-18 23:59:34 -05:00
Lioncash
368a8630e0 thumb32: Implement DSB 2021-02-18 23:58:12 -05:00
Lioncash
5602db88f4 thumb32: Implement MOVW 2021-02-18 23:52:06 -05:00
Lioncash
d05c706ff4 thumb32: Implement MOVT 2021-02-18 23:52:03 -05:00
MerryMage
f568687bd9 thumb32: Implement EOR (immediate) 2021-02-18 20:51:13 +00:00
MerryMage
8fd7ec3989 thumb32: Implement TEQ (immediate) 2021-02-18 20:49:06 +00:00
MerryMage
efbc8cef53 thumb32: Implement ORN (immediate) 2021-02-18 20:48:55 +00:00
MerryMage
08f046036c thumb32: Implement MVN (immediate) 2021-02-18 20:19:45 +00:00
MerryMage
cafa687684 thumb32: Implement ORR (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
b2f0575fee thumb32: Implement MOV (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
3dcc882fbf thumb32: Implement BIC (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
6f3c5dc1d9 thumb32: Implement AND (immediate) 2021-02-18 01:28:03 +00:00
MerryMage
5bf676d93e thumb32: Implement TST (immediate) 2021-02-18 01:05:45 +00:00
Sunho Kim
069beb5228 A32: Add ThumbExpandImm and ThumbExpandImm_C
These are used by many thumb2 instructions
2021-02-17 23:45:51 +00:00
sunho
43a1a523f6 A32: Fix thumb32 BL and BLX
More fields required
2021-02-17 23:18:05 +00:00
MerryMage
df027a7998 thumb32: Split thumb32 file into branch and control 2021-02-17 23:18:05 +00:00
merry
6f54c9d0b6
Merge pull request #562 from emuplz/a64_ic_instructions
A64 IC Instructions
2021-02-17 21:51:58 +00:00
emuplz
6d4333c78e fixed data + instruction cache callbacks (w/ tests) 2021-02-17 20:38:08 +00:00
rufi
77621a8448 implemented other ic instructions 2021-02-17 20:38:08 +00:00
emuplz
8728444af8 added support for instruction ic ivau 2021-02-17 20:38:06 +00:00
Lioncash
e0d6b60270 thumb32: Implement UXTAB 2021-02-10 16:23:54 -05:00
Lioncash
d97369c252 thumb32: Implement UXTB 2021-02-10 16:22:22 -05:00
Lioncash
ad5d0d7b77 thumb32: Implement SXTAB 2021-02-10 16:20:43 -05:00
Lioncash
75a28b00a7 thumb32: Implement SXTB 2021-02-10 16:18:26 -05:00
Lioncash
3cefdc3ab9 thumb32: Implement UXTAB16 2021-02-10 16:16:56 -05:00
Lioncash
eec16eea45 thumb32: Implement UXTB16 2021-02-10 16:15:28 -05:00
Lioncash
6733cdd706 thumb32: Implement SXTAB16 2021-02-10 16:13:34 -05:00
Lioncash
1b5fcfd8d1 thumb32: Implement SXTB16 2021-02-10 16:11:09 -05:00
Lioncash
39a75472e2 thumb32: Implement UXTAH 2021-02-10 16:09:37 -05:00
Lioncash
e12ee8d4d7 thumb32: Implement UXTH 2021-02-10 16:07:17 -05:00
Lioncash
c0871d4c18 thumb32: Implement SXTAH 2021-02-10 16:04:33 -05:00
Lioncash
273125e0b1 thumb32: Implement SXTH 2021-02-10 15:58:36 -05:00
merry
fe761b2c61
Merge pull request #574 from lioncash/multiply2
thumb32: Implement long multiply and divide instructions
2021-02-09 20:37:16 +00:00
Lioncash
8cd91a84d0 thumb32: Implement SDIV/UDIV 2021-02-07 17:53:34 -05:00
Lioncash
fb1405157b thumb32: Implement UMAAL 2021-02-07 17:45:00 -05:00
Lioncash
f9bbc25e29 thumb32: Implement SMLSLD{X} 2021-02-07 17:42:44 -05:00
Lioncash
fe3deb1831 thumb32: Implement SMLALD{X} 2021-02-07 17:40:36 -05:00
Lioncash
87cb771bd2 thumb32: Implement SMLALXY 2021-02-07 17:37:26 -05:00
Lioncash
8320c56a6e thumb32: Implement UMLAL 2021-02-07 17:34:05 -05:00
Lioncash
5859105a61 thumb32: Implement SMLAL 2021-02-07 17:32:11 -05:00
Lioncash
28108c7924 thumb32: Implement UMULL 2021-02-07 17:29:20 -05:00
Lioncash
6cf47e0ce0 thumb32: Implement SMULL 2021-02-07 17:22:43 -05:00
merry
7290ae1273
Merge pull request #573 from lioncash/multiply2
thumb32: Implement the rest of the thumb-2 multiply category instructions
2021-02-07 21:04:42 +00:00
MerryMage
f77b0e2fbe A32/thumb16: Implement IT instruction 2021-02-07 20:41:48 +00:00
MerryMage
97d8b50c25 A32: Ensure existing thumb code is ITState-correct 2021-02-07 20:41:48 +00:00
MerryMage
68bd9547c5 fuzz_arm: Correctly print thumb instruction listing 2021-02-07 20:41:48 +00:00
MerryMage
62003a2d89 A32/ir_emitter: Implement UpdateUpperLocationDescriptor 2021-02-07 20:41:48 +00:00
MerryMage
f229a68aed a32_emit_x64: Update upper_location_descriptor in BXWritePC based on final location 2021-02-07 20:41:48 +00:00
MerryMage
714b0b9a8b A32/translate: Factor conditional state handling out 2021-02-07 20:41:48 +00:00
Lioncash
b58cd3a996 thumb32: Implement SMLAWY 2021-02-07 13:34:56 -05:00
Lioncash
96895d2eb5 thumb32: Implement SMULWY 2021-02-07 13:32:39 -05:00
Lioncash
8a22bdff43 thumb32: Implement SMLSD{X} 2021-02-07 13:29:20 -05:00