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