Commit Graph
373 Commits
Author SHA1 Message Date
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