Ryan Houdek
ef63f5f30f
Fixes RCLSE pass generating bad IR
...
Don't do DCE inside the pass, let the DCE pass actually handle this.
This was causing later passes to crash
2020-03-16 13:13:17 -07:00
Ryan Houdek
3bb154b7f0
Merge pull request #17 from Sonicadvance1/rename_cvts
...
Cleans up and renames the CVT ops
2020-03-13 17:43:53 -07:00
Ryan Houdek
79ffd11c1d
Cleans up and renames the CVT ops
...
Fixes issue #14 .
A lot of these were named in very confusing ways.
Makes them very explicit about what the operation is doing
2020-03-13 17:42:39 -07:00
Ryan Houdek
121bed017c
Merge pull request #24 from Sonicadvance1/fixes_jit_x86
...
Various fixes for the x86 JIT
2020-03-13 15:52:48 -07:00
Ryan Houdek
0e80dc27cc
Merge pull request #21 from Sonicadvance1/movshdup
...
Implements Movshdup instruction
2020-03-13 15:52:24 -07:00
Ryan Houdek
30338dd7f4
Merge pull request #20 from Sonicadvance1/pextrw
...
Implements PExtrw instruction
2020-03-13 15:52:09 -07:00
Ryan Houdek
78bcf3960d
Merge pull request #19 from Sonicadvance1/psrl_family
...
Implements PSRL{W,D,Q} instruction family
2020-03-13 15:51:58 -07:00
Ryan Houdek
4459a048f7
Merge pull request #18 from Sonicadvance1/Interpreter/vushr
...
Removes undefined behaviour in the VUSHR in interpreter
2020-03-13 13:04:56 -07:00
Ryan Houdek
7cb97ed2f8
Merge pull request #16 from Sonicadvance1/fixes_cmake_aarch64
...
Fixes CMake configuration on AArch64 host
2020-03-13 13:04:38 -07:00
Ryan Houdek
dd8e784b9a
Merge pull request #15 from Sonicadvance1/force_pic
...
Enables PIC
2020-03-13 13:04:25 -07:00
Ryan Houdek
d5481efa6b
Fixes AtomicFetch{Add,Sub} for 8bit and 16bit ops in the x86 JIT
2020-03-12 22:13:53 -07:00
Ryan Houdek
600f43779c
Fixes and implements a couple vector shift ops in the x86 JIT
2020-03-12 22:13:17 -07:00
Ryan Houdek
12288ab887
Fixes VFCMPLE in x86 JIT
2020-03-12 22:12:34 -07:00
Ryan Houdek
2c44338478
Implements VFCMPNEQ in x86 JIT
2020-03-12 22:11:52 -07:00
Ryan Houdek
2e34f25257
Implements VSQXTUN and VSQXTUN2 in x86 JIT
2020-03-12 22:11:36 -07:00
Ryan Houdek
d0a7685bfa
Implements VUMULL in x86 JIT
2020-03-12 22:11:18 -07:00
Ryan Houdek
5bb93e5b8e
Implements VSQADD and VSQSUB in x86 JIT
2020-03-12 22:09:49 -07:00
Ryan Houdek
e3e62f3dd1
Fixes VInsGPR in x86 JIT
2020-03-12 22:09:21 -07:00
Ryan Houdek
6730d5601c
Fixes VExtractToGPR on x86 JIT
2020-03-12 22:08:30 -07:00
Ryan Houdek
739b471731
Implements signed/unsigned div/rem on x86 JIT
2020-03-12 22:07:36 -07:00
Ryan Houdek
42830d3e48
Merge pull request #22 from phire/fix_condslt
...
Fix Signed LT in x86 jit
2020-03-12 22:02:12 -07:00
Ryan Houdek
26ffd0b5dd
Merge pull request #23 from phire/not_neg
...
Fix Neg IR_OP, Add Not IR_OP
2020-03-12 22:02:02 -07:00
Scott Mansell
f2967e8ef9
OP_NEG/OP_NOT: add support for other opsizes.
2020-03-13 17:54:09 +13:00
Scott Mansell
99d1dcad98
Fix Neg IR_OP, Add Not IR_OP
...
In some places, Neg meant logical one's complement negation.
In others it meant arithmetic two's complement negation.
As both x87 and aarch64 have neg instructions that do
two's complement negations, we will standardise on that.
Additionally we will add a Not_IR op for one's complement
2020-03-13 17:53:57 +13:00
Scott Mansell
ba4e311dc2
Fix Signed LT in x86 jit
2020-03-13 17:52:49 +13:00
Ryan Houdek
5bf9dd13b3
Adds movshdup unit test
2020-03-12 18:31:41 -07:00
Ryan Houdek
6069fcb9d4
Implements Movshdup instruction
2020-03-12 18:31:33 -07:00
Ryan Houdek
f10674160d
Implements pextrw unit test
2020-03-12 18:28:57 -07:00
Ryan Houdek
64dd3187d5
Implements PExtrw instruction
2020-03-12 18:28:29 -07:00
Ryan Houdek
74a73c92a4
Implements PSRL{W,D,Q} unit tests
2020-03-12 18:24:03 -07:00
Ryan Houdek
612b74d001
Implements PSRL{W,D,Q}
...
Saw this family when running mesa softpipe
2020-03-12 18:23:01 -07:00
Ryan Houdek
5cb9f9e0fa
Removes undefined behaviour in the VUSHR in interpreter
2020-03-12 18:20:12 -07:00
Ryan Houdek
d082a5f551
Fixes CMake configuration on AArch64 host
2020-03-12 16:28:51 -07:00
Ryan Houdek
85a882909b
Enables PIC
...
We don't require non-pie and this can also solve some linking problems I
saw on Arch64 hosts
2020-03-12 16:26:13 -07:00
Stefanos Kornilios Mitsis Poiitidis
99399ecbac
Merge pull request #10 from Sonicadvance1/unittests/cmps
...
Adds unit tests for the CMPS instruction family
2020-03-12 10:57:59 +02:00
Stefanos Kornilios Mitsis Poiitidis
5afaf06c60
Merge pull request #11 from Sonicadvance1/scas
...
Implements REPNE for SCAS
2020-03-11 10:09:05 +02:00
Ryan Houdek
1b4ea20b17
Implements REPNE for SCAS
2020-03-10 18:21:16 -07:00
Ryan Houdek
d9bde8cfcf
Implements unit tests for CMPS
...
Isn't all encompassing, we're still missing REPNE tests for the larger sizes
2020-03-10 18:18:36 -07:00
Ryan Houdek
a8f4e8a860
Implements CMPS support for REPNE and no prefix
2020-03-10 18:18:06 -07:00
Stefanos Kornilios Mitsis Poiitidis
963de98276
Merge pull request #7 from Sonicadvance1/unittests/primary_1
...
Primary table unit tests and a couple fixes
2020-03-10 15:26:05 +02:00
Stefanos Kornilios Mitsis Poiitidis
e2e9e1eb41
Merge pull request #9 from Sonicadvance1/unittests/stos
...
Adds unit tests for the STOS instruction family
2020-03-10 15:25:49 +02:00
Stefanos Kornilios Mitsis Poiitidis
dc2ed29e18
Merge pull request #8 from Sonicadvance1/unittests/movs
...
Adds unit tests for the MOVS instruction family
2020-03-10 09:47:29 +02:00
Stefanos Kornilios Mitsis Poiitidis
304c1512ef
Merge pull request #6 from Sonicadvance1/overlay66
...
Implements an x86Table flag to partially ignore overlays
2020-03-10 09:45:15 +02:00
Ryan Houdek
c51341294b
Adds STOS unit tests
...
Tests all sizes that STOS supports, with the DF going up AND down.
2020-03-09 22:59:59 -07:00
Ryan Houdek
4f0a8187ce
Implements support for STOS without REP flag
...
It doesn't support REPNE so update that assert as well
2020-03-09 22:59:07 -07:00
Ryan Houdek
51458f75fb
Adds MOVS unit tests
...
Tests all the sizes that MOVS supports, with the DF going up AND down.
2020-03-09 22:33:20 -07:00
Ryan Houdek
edf472a98a
Updates assert in the MOVS
...
REPNE on MOVS is unsupported, most likely the prefix is ignored but
until a hardware test can confirm update the comment
2020-03-09 22:31:31 -07:00
Ryan Houdek
ee410cf1be
Implements Primary table unit tests
...
Not full coverage, skips the string ops and doesn't confirm that flag
setting is correct. Those are forthcoming
2020-03-09 18:15:43 -07:00
Ryan Houdek
7a052000c9
Implements SCAS with no repeat prefix
...
This is used in a couple unit tests
2020-03-09 18:15:05 -07:00
Ryan Houdek
66b08b3bad
Fixes MOV to moffset destination
...
With how we decode literals the destination actually ends up in Src[1]
2020-03-09 18:14:20 -07:00