25 Commits

Author SHA1 Message Date
Stefanos Kornilios Mitsis Poiitidis
29a8fd0a4a Tests: Add gcc-target-tests for 32 and 64 bit 2021-01-26 12:00:45 +02:00
Ryan Houdek
921867de7e Works around Clang failing to identify new Kryo CPUs
Some of the newer CPU cores in LLVM's source claim to be a Cortex-A73,
which means they become limited to an ARMv8.0 feature set.

This is what you get if you compile FEX with -mcpu=native

To work around this issue, manually parse /proc/cpuinfo ourselves and
pull out the CPU type to pass to clang directly.
This also fixes the issue that we were using -march on AArch64, which no
longer works on newer clang versions. We instead need to use mcpu or
mtune.

Should improve all atomic op performance outside of the JITs, where they
were turning in to loadstore exclusive pairs.
2021-01-19 03:21:10 -08:00
Stefanos Kornilios Mitsis Poiitidis
311aa2b811 Tests: Cleanup scripts, review feedback 2021-01-10 18:06:02 +02:00
Stefanos Kornilios Mitsis Poiitidis
278e156a8a Tests: Move timeout to ctest from python + timeout 2021-01-09 19:26:15 +02:00
Stefanos Kornilios Mitsis Poiitidis
fea7ac1f83 Tests: Update posix_test_runner, update gvisor and posix test lists 2021-01-09 18:57:19 +02:00
Ryan Houdek
7c14619346 Support disabling ASM and IR tests per runner type
Allows us to disable specific tests for interpreter, jit, or host.
No architecture specific disabling yet
2020-09-25 21:17:54 -07:00
Scott Mansell
cb6dcf62eb Add MemoryData to IR and ASM Tests 2020-08-21 01:29:37 +12:00
Ryan Houdek
d23b049dd0 Changes posix test timeout wrapper to use SIGKILL
Since we now capture all signals we need to be more aggressive.
2020-08-11 00:33:49 +01:00
Ryan Houdek
f613d670c7 Increase timeout of test runner 2020-07-19 04:03:21 -07:00
Stefanos Kornilios Mitsis Poiitidis
edd6d5ec4b posixtests: Add support for comments in the failures/outputs/disabled lists 2020-06-30 13:11:45 +03:00
Ryan Houdek
b262b59916 Fixes up prefix handling for 32bit
Moves REX to a 64bit only table entry. This allows the missing INC/DEC
instructions to exist in 32bit space
2020-06-10 16:49:06 -07:00
Ryan Houdek
2474ca1437 Adds support for disabled tests in the IR and ASM runners 2020-05-28 15:09:51 -07:00
Stefanos Kornilios Mitsis Poiitidis
f10891eb11 posixtests: Move disabled list to file from filenames 2020-05-26 17:39:22 +03:00
Stefanos Kornilios Mitsis Poiitidis
5ae047e031 posix_test_runner.py: More debug output 2020-05-23 19:25:29 +03:00
Stefanos Kornilios Mitsis Poiitidis
430ff3e2a6 Move posixtest to ctest, add known failures 2020-05-22 16:23:07 +03:00
Ryan Houdek
6cdd3916c0 Adds IR based unit test support.
Now that everything is punched through that is necessary, we can now
have IR based unit tests that will be used to ensure the IR is working
correctly.
Specifically this is necessary for quick iterating on RA testing.
2020-05-09 12:19:36 -07:00
Ryan Houdek
31afb62a2a Split python unit test ASM config parser code out to an independent file
This will be needed once we have multiple file type configs getting
parsed
2020-05-09 12:14:59 -07:00
Ryan Houdek
6305b40a33 Adds known failure support to unit test runner
This will allow us to add unit tests that have known failures like
unsupported features

Additionally if the test passes and is on the known failure list then it
still fails since its state has changed
2020-03-16 12:35:09 -07:00
Scott Mansell
d4cffa5354 Add x87/MMX registers to test harness 2020-03-06 09:08:47 +02:00
Ryan Houdek
369686c992 Initial Commit 2020-03-06 09:08:13 +02:00
Stefanos Kornilios Mitsis Poiitidis
e9ea4cbb76 FEXCore: Move to Externals/FEXCore 2020-03-06 09:07:37 +02:00
Ryan Houdek
218f38ff3d Adds new IR::GetArgs function
This returns SSA args that will eventually be register allocated.
2020-03-06 07:55:20 +02:00
Ryan Houdek
199cfd76d8 Refactor IR and other changes that are hard to split
I had to change how blocks are represented to make it easier to parse
This required a fairly substantial refactor that makes it so blocks are
represented differently and we can walk them sequentially.

This will make future analysis easier to deal with.
Had to rewrite the passes and core's parsing of the IR afterwards.

Moved RA in to a optimization pass to be shared between the JIT backends
This works because x86-64 and AArch64 RA can be identical.

Still doesn't support PHI nodes or spilling correctly, this is the first
step in the process of getting there.
2020-03-06 07:55:13 +02:00
Ryan Houdek
40cad15da9 Cleanup old IR emitter functions
Argumentless IR emitter functions were prone to generating invalid code.
Remove them from the python emitter and change the branch instructions
that were using them to a new version instead.
Adds NumUse tracking as well.
2020-03-06 07:48:41 +02:00
Ryan Houdek
7252050e42 Initial commit 2020-03-06 07:48:39 +02:00