Ryan Houdek
fd6d33d197
Merge pull request #996 from FEX-Emu/skmp/aotirgen
...
AOTIR: Offline Generation
2021-05-03 15:58:57 -07:00
Stefanos Kornilios Mitsis Poiitidis
be41f14452
Fix generation script
2021-05-03 18:16:43 +03:00
Stefanos Kornilios Mitsis Poiitidis
cf5bd202d4
AOTIR: Update gen script to default to global fex installation
2021-05-03 06:15:25 +03:00
Ryan Houdek
8d34222556
Add vardecl type matching for ioctl verification
2021-05-01 07:39:14 -07:00
Stefanos Kornilios Mitsis Poiitidis
9a4fc758c1
AOTIR: FEXUpdateAOTIRCache.sh now passes compilation modifiers
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
4bd997adaa
AOT: Postfix ir files with .aotir
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
244ef94e9b
AOTIR: Generate list of files with code, add Scripts/FEXUpdateAOTIRCache.sh to generate all files
2021-05-01 09:40:50 +03:00
Ryan Houdek
b06ebf486f
Work around M1 Parallels hypervisor not showing CPU type
...
Parallels claims that the CPU is of implementor 0x41 and part number 0.
Easy enough to work around before real numbers get exposed
2021-04-27 22:26:35 -07:00
Ryan Houdek
8adb1ca3a2
Fixes ordering problem of tag generation in release script
...
Wasn't actually creating an annotated tag with this order
2021-04-05 18:35:09 -07:00
Ryan Houdek
26d9ddef9f
Updates release script to match what I want it to be
...
Generates the current and previous tag automatically.
Checks to ensure the previous tag exists and that the current tag does not
2021-04-02 11:49:19 -07:00
Stefanos Kornilios Mitsis Poiitidis
15537f8c8c
Scripts: Also add unittests folder for doc outline
2021-03-30 11:58:18 +03:00
Stefanos Kornilios Mitsis Poiitidis
1fdd6fbb14
Scripts: Add a documentation comment in changelog_generator.py
2021-03-30 11:55:39 +03:00
Stefanos Kornilios Mitsis Poiitidis
458bebf598
Scripts: Add a documentation comment in doc_outline_generator.py
2021-03-30 11:53:11 +03:00
Stefanos Kornilios Mitsis Poiitidis
2b10b9792b
Scripts: Fix generate_release, don't use markdown for changelogs
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
0dd02da57c
Docs: Update outline scripts
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
309139e203
Scripts: Add generate_release script
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
350c33ada4
Docs: Update outline script
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
bdd35e5743
docs: Update outline generator
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
ceb7082e37
Docs/Versioning: Add Changelog Generator
2021-03-30 11:23:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
2d6dc80039
Docs: Adds tag-based outline generator w/ glossary support
2021-03-30 11:22:56 +03:00
Ryan Houdek
de890e7387
Have unit tests check for runner label
2021-03-22 09:03:48 -07:00
Ryan Houdek
aacb0f6891
Adds new struct_verifier ctest to cmake
...
Currently only testing 32bit syscall struct definitions
2021-03-15 15:24:49 -07:00
Ryan Houdek
e0c5840f2c
Adds libclang based struct verifier
...
This requires multiarch on the targets to work.
Will run a header through multiple architectures and ensure that the struct packing all works
2021-03-15 06:58:06 -07:00
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