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
Ryan Houdek
0fc06c7bfa
Implements an x86Table flag to partially ignore overlays
...
Currently only support partially ignoring for overlay 0x66, this means
we only support no overlay at all and 0x66. Using only two bits of flag
space rather than 3.
If we find an instruction family that supports a different one then we
should break it out to three independent flags. Keeping it two until
then
Unit tests to ensure this keeps working is forthcoming
2020-03-09 13:06:46 -07:00
Stefanos Kornilios Mitsis Poiitidis
39f639e07a
Merge pull request #4 from Sonicadvance1/fix_push_reg
...
Fixes PUSH with register encoded in op
2020-03-09 11:35:20 +02:00
Stefanos Kornilios Mitsis Poiitidis
f76fbef34b
Merge pull request #5 from Sonicadvance1/unittest/twobyte
...
Fixes found from the rest of Two Byte table unit tests
2020-03-09 11:32:03 +02:00
Ryan Houdek
8e5fe4ba76
Implements the rest of the TwoByte table unit tests
2020-03-08 22:07:59 -07:00
Ryan Houdek
e1c7c9c0f3
Fixes BTC, BSF, BSR, and XADD table flags
...
They require FLAGS_NO_OVERLAY otherwise the frontend can't find the
instructions.
2020-03-08 22:07:00 -07:00
Ryan Houdek
c11ac417ce
Fixes BSR and BSF 32bit op when source is zero
...
BSR/BSF needs to not write to destination when source is zero
This ensures it doesn't clear the upper 32bits of the register in this
case.
2020-03-08 22:05:47 -07:00
Ryan Houdek
30b2f019b4
Implements 16bit SHLD/SHRD
...
Unit tests found them missing
2020-03-08 22:05:08 -07:00
Ryan Houdek
19a6292813
Fixes bug in SHRD
...
Need to negate by the size of the op, not just regular negate
instruction
2020-03-08 22:04:26 -07:00
Ryan Houdek
2726e2512d
Fixes PUSH with register encoded in op
...
Unittest to ensure this keeps working is forthcoming.
2020-03-08 16:05:25 -07:00
Stefanos Kornilios Mitsis Poiitidis
2f7c1d4fa5
Merge pull request #3 from Sonicadvance1/unittest_fixes
...
More Unit tests and fixes
2020-03-08 08:01:02 +02:00
Ryan Houdek
b227086cb1
Initial unit tests for the two byte table
...
Not yet complete, about halfway there
2020-03-07 21:54:43 -08:00
Ryan Houdek
0d5ac6b5cf
Finishes unit tests for the primary group table
2020-03-07 21:54:25 -08:00
Ryan Houdek
e9092b328b
Implements 16bit long div and long remainder in interpreter
...
Missed this originally when implementing, unit tests found it missing
2020-03-07 21:52:40 -08:00
Ryan Houdek
86fb69a5a2
Fixes CVTDQ2PS that unit tests uncovered
...
This was actually doing 2xint32 -> 2xdouble translations initially.
Needed to do 4xint32 -> 4xfloat
2020-03-07 21:51:45 -08:00
Ryan Houdek
2da7e9d29b
Minor cleanup in the flag calculation for sub
...
No need to make a switch statement to extract the sign bit of the source
2020-03-07 21:51:04 -08:00
Ryan Houdek
03c954930a
Fixes translation of a 16bit CALL instruction
...
This instruction is effectively dead since Linux reserves the lower
16bits for itself, but in the case that someone manages to encode it
then we will at least attempt to access the correct RIP.
2020-03-07 21:49:46 -08:00
Ryan Houdek
463710929a
Fixes a bug in PUSH that unit tests uncovered
...
In an edge cases of pushing with a 32bit immediate sign extended to
64bit then there could have been a conflict.
Rearrange the ordering a bit to ensure it is correct
2020-03-07 21:48:22 -08:00
Stefanos Kornilios Mitsis Poiitidis
969d72cf25
Merge pull request #2 from Sonicadvance1/unittest/primarygroup_1
...
Primary group 1 table unit tests and fixes
2020-03-07 09:19:40 +02:00
Ryan Houdek
65b85b2b4d
Fixes bugs uncovered by the Group1 Primary table unit tests
...
These instructions treat the immediate encoding differently depending on
the operating size of the instruction
For 16bit and 32bit operation they treat the immediate as an
appropriately sized immediate.
For 64bit operand size the immediate is sign extended to handle the new
operating width.
CMP was previously set to SEXT for this which would have its own set of
problems handling it like that.
2020-03-06 22:12:16 -08:00
Ryan Houdek
a80abb6ed3
Implement unit tests for the group 1 primary group table
2020-03-06 22:11:36 -08:00
Ryan Houdek
d84b536c4a
Merge pull request #1 from FEX-Emu/wip
...
CI Reenablement
2020-03-06 00:25:25 -08:00
Ryan Houdek
41dbf5b4e7
Adds xbyak to externals
...
Removes cmake check to see if it exists
2020-03-06 00:20:13 -08:00
Ryan Houdek
445fe97dc6
Update workflow file
...
We need to checkout submodules
We should run on all branches
2020-03-06 00:20:13 -08:00
Ryan Houdek
73129e59d7
Revert "Revert "Creates cmake build runner workflow""
...
This reverts commit 4867c98240 .
Public!
2020-03-05 23:26:30 -08:00
Ryan Houdek
98d0b36177
Update vixl to latest make it a shallow copy to be smaller
2020-03-05 23:24:21 -08:00
Ryan Houdek
891ac58d8f
Fixes FEXCore cmake file to no longer search for SonicUtils subdir
2020-03-06 09:10:32 +02:00
Ryan Houdek
4867c98240
Revert "Creates cmake build runner workflow"
...
This reverts commit 0cff80349c3ec43df3626996d2510421e40f0e45.
Github Actions don't work on legacy org repos without a payment plan
2020-03-06 09:08:50 +02:00
Ryan Houdek
81bcfc8009
Creates cmake build runner workflow
2020-03-06 09:08:50 +02:00
Ryan Houdek
242c388861
Adds REP table unit tests for what we support
2020-03-06 09:08:50 +02:00
Ryan Houdek
04bdb4a3de
Finish REPNE table unit tests for current supported instructions
2020-03-06 09:08:50 +02:00
Ryan Houdek
b10f5d9550
Finish OpSize table unit tests for current supported instructions
2020-03-06 09:08:50 +02:00
Ryan Houdek
b9326ce613
Adds a bunch of new OpSize table unit tests
2020-03-06 09:08:50 +02:00
Ryan Houdek
a2afd684ae
Allows ELF loader to pull in all environment variables
...
This will leak some host state which is fine.
Necessary to allow access to things like DISPLAY and XAUTHORITY and
various other bits
2020-03-06 09:08:50 +02:00
Ryan Houdek
5413ff3c0a
Adds Secondary extension op unit tests
2020-03-06 09:08:50 +02:00
Ryan Houdek
b5aca4f43b
Adds palignr unit tests
2020-03-06 09:08:50 +02:00
Ryan Houdek
9e6adb032e
Add asm test files recursively to allow folder organization
2020-03-06 09:08:50 +02:00
Ryan Houdek
b75647f9a8
Be better behaved with the Test harness helper results
2020-03-06 09:08:50 +02:00
Ryan Houdek
8afd8adde6
Removes broken simple_loop test
2020-03-06 09:08:50 +02:00
Ryan Houdek
e13d77215a
Removes broken mul test
2020-03-06 09:08:50 +02:00
Ryan Houdek
03f068ec1d
Adds support for unified memory option in ELFLoader application
2020-03-06 09:08:50 +02:00