Ryan Houdek
a247dfe9b9
Adds noop VM source file
...
This is necessary to fix building on non-x86 platforms.
2020-03-15 00:24:11 -07:00
Ryan Houdek
c4b40b2d8f
Implements vector shift by immediate ops
2020-03-13 17:55:28 -07:00
Ryan Houdek
664466b60f
Fixes 64bit Vector SToF
...
Was just using the 32bit instruction on accident
2020-03-13 17:54:43 -07:00
Ryan Houdek
26aa13e7a9
Replaces x86 rsqrtss usage with sqrtss+divss
...
x86 documentation only claims 1.5 * 2^-12 precision on rsqrtss.
Which was enough to make rsqrt of 1.0 be off by a significant amount
This made unit tests fail, so let's just make it more accurate
2020-03-13 17:52:26 -07:00
Ryan Houdek
de444dc62b
Fixes SplatVector IR Op
2020-03-13 17:52:07 -07:00
Ryan Houdek
39bac4efea
Fixes 32bit memory load op
...
xbyak was silently treating this dword load as a 64bit load because the
destination was a 64bit register
2020-03-13 17:51:07 -07:00
Ryan Houdek
7fa3a318db
Division op fixes
...
Some division ops weren't sign extending properly and implements 16bit
ops
2020-03-13 17:49:38 -07:00
Ryan Houdek
23d516d7f3
Fixes SHL/SHR ops
...
Makes sure they are operating at the correct sizes.
Also removes the BMI2 SHRX/SHLX ops
2020-03-13 17:47:53 -07:00
Ryan Houdek
e426a622bb
Fixes PRINT op in IR JIT. Needs correct stack alignment
2020-03-13 17:47:25 -07:00
Ryan Houdek
cf106289d3
Removes bad vector BFE usage in MOVMSK op
...
BFE isn't actually meant to be used on vector ops.
Interpreter got away with it because it doesn't have register classes.
Actually do a correct element extract and sign bit extraction
2020-03-13 17:45:36 -07:00
Ryan Houdek
4227a0cdc7
Removes old asserts from CMPS instruction
2020-03-13 17:45:14 -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