Commit Graph
1123 Commits
Author SHA1 Message Date
Ryan Houdek 7a80f2bcbb Implements missing CVTPD2DQ
Without impementing MXCSR still, this matches the already implemented
CVTTPD2DQ
2020-09-10 16:50:05 -07:00
Stefanos Kornilios Mitsis Poiitidis 9423bab83c Merge pull request #352 from FEX-Emu/skmp/disable-bfe-identity
IR/ConstProp: Disable BFE identity as it breaks cs:go
2020-09-07 01:57:56 +03:00
Stefanos Kornilios Mitsis Poiitidis 0adb874755 IR/ConstProp: Disable BFE identity as it breaks cs:go 2020-09-07 00:58:29 +03:00
Ryan Houdek 4b17521ab9 Merge pull request #343 from Sonicadvance1/cpuid_improvements
Has /proc/cpuinfo generated from CPUID
2020-09-06 12:40:03 -07:00
Ryan Houdek 6e28fd68c3 Merge pull request #344 from Sonicadvance1/rcpc
Adds support for RCPC load instructions
2020-09-06 12:31:28 -07:00
Stefanos Kornilios Mitsis Poiitidis 54bf7a095a Merge pull request #349 from Sonicadvance1/fix_altstack_disable
Fixes guest disabling sigaltstack.
2020-09-06 17:40:26 +03:00
Stefanos Kornilios Mitsis Poiitidis f719f0e646 Merge pull request #347 from Sonicadvance1/tso_option
Adds option to disable TSO
2020-09-06 17:39:21 +03:00
Stefanos Kornilios Mitsis Poiitidis 89abb9ea8e Merge pull request #346 from Sonicadvance1/clean_build_folder
Has the github action clean its build folder
2020-09-06 17:39:12 +03:00
Ryan Houdek 50227ba379 Fixes guest disabling sigaltstack.
Previously we never checked for SS_DISABLE.
We were also only ever checking for ss_sp being a valid memory range
when we should have been checking for the absense of SS_DISABLE.

Fixes #326
2020-09-05 21:59:52 -07:00
Ryan Houdek 61072ba37e Has /proc/cpuinfo generated from CPUID
Instead of having this file mostly just copy and pasted, it'll now be
generated.
We end up losing a lot of supported flags with this change, which is for
the best since we wouldn't have actually supported those things.
2020-09-05 16:59:10 -07:00
Ryan Houdek c12847cbcb Cleans up CPUID
Instead of saying we support the world, actually go through each
individual flag and say that we support the correct things.
Puts FEX plus the git hash in to the model name for now.
Once we have a tagged release in the future we can change this to have
its version tag inside of it.
2020-09-05 16:59:10 -07:00
Ryan Houdek e177bb3ebc Adds a git_version generated header
Allows us to get the short git hash at runtime
2020-09-05 16:59:10 -07:00
Ryan Houdek 2175e9d9c8 Adds support for RCPC load instructions
If the host CPU supports RCPC instructions then it'll use those
instruction of atomics for LoadMemTSO ops.

This pushed my worst case FTL test from 16FPS to 17FPS .

There is another extension to RCPC to add short immediate offset support
which the c630 doesn't support any way. For future optimization on
hardware we can use that.
2020-09-05 16:58:50 -07:00
Ryan Houdek 5fe7466d92 Adds check for RCPC support 2020-09-05 16:58:50 -07:00
Ryan Houdek b21767c9e3 Has the github action clean its build folder
We have hit issues where the non-clean folder would end up leaving
artifacts which allowed tests to pass.

Remove the build folder on each run to clean up
2020-09-05 16:58:28 -07:00
Ryan Houdek ee8dfc96fa Adds support for the AArch64 JIT to disable TSO
AArch64 is the only backend that currently needs to do something
different for TSO
2020-09-05 16:58:03 -07:00
Ryan Houdek 0819a40c57 Adds option to disable TSO
This is a knowingly wrong option for anything running in a threaded
environment
2020-09-05 16:58:03 -07:00
Stefanos Kornilios Mitsis Poiitidis 6734dcf954 Merge pull request #345 from Sonicadvance1/fix_posix_tests
Emergency fix. POSIX tests failing because of ELFLoader rename
2020-09-06 02:54:19 +03:00
Ryan Houdek 5f696336d7 Emergency fix. POSIX tests failing because of ELFLoader rename 2020-09-05 15:48:35 -07:00
Ryan Houdek 6d26801d68 Merge pull request #342 from Sonicadvance1/binfmt_misc
Binfmt_misc support
2020-09-05 14:59:29 -07:00
Ryan Houdek 1785b310f9 Adds a binfmt_misc install target
This will install a binfmt_misc target for x86_64 targets that allows
FEXLoader to be the interpreter.

Everything else is already set up to allow this to work, just time to
hook it up.
2020-09-03 23:20:57 -07:00
Ryan Houdek 7c9f06f2d8 Allows installing FEXLoader
This wasn't installed at all previously
2020-09-03 18:39:41 -07:00
Ryan Houdek 0111175036 Renames ELFLoader to FEXLoader
This makes more sense for us when we are installed to /usr/bin/
2020-09-03 18:38:46 -07:00
Ryan Houdek eface7d911 Merge pull request #341 from FEX-Emu/skmp/fix-jitsymbols-arm64
fix jit symbols arm64
2020-09-03 14:51:14 -07:00
Stefanos Kornilios Mitsis Poiitidis 0e0fddafec arm64: Return DebugData if passed 2020-09-03 07:06:18 +03:00
Stefanos Kornilios Mitsis Poiitidis 3083f9e12e Merge pull request #332 from FEX-Emu/skmp/iterative-rclse
IR: Iterative RCLSE
2020-09-03 05:18:11 +03:00
Stefanos Kornilios Mitsis Poiitidis e7cbe2ca91 Merge pull request #338 from FEX-Emu/skmp/identity-opts
IR: Add identity opts for AND/OR/XOR
2020-09-03 05:17:10 +03:00
Stefanos Kornilios Mitsis Poiitidis dd5c3a5e44 Merge pull request #333 from Sonicadvance1/more_signals
Moves our entire execution model over to signal execution
2020-09-03 02:12:21 +03:00
Ryan Houdek cf5afbcd8d Some minor optimizations in the AArch64 ASM dispatcher
Ensures the top of the loop is 16byte aligned to give Cortex's
prefetcher the best chance of loading the code.

If the address size is a power of two (We always do 64GB or 32GB VM atm)
then do the address size masking in one instruction instead of loading a
64bit constant first

Move some accessed constants to a literal pool at the end of the ASM
dispatcher.
2020-09-02 16:00:17 -07:00
Ryan Houdek a75a7b3dcd Fixes a crash in the AArch64 JIT from the previous signal work
Was accidently setting the buffer size then unmapping at that new size.
Make sure to unmap then resize.
Also cleans up which buffer is actually being touched here, only the
initial buffer ever changes here.
2020-09-02 16:00:17 -07:00
Ryan Houdek 50349db4c6 Moves our entire execution model over to signal execution
This requires implementing custom ASM dispatchers for the interpreter
side of things so it works correctly.
Allows all of our CPU backends to safely support signaling.
This is a bit of a nightmare change and requires rethinking logic about
debugging in some instances.
2020-09-02 16:00:17 -07:00
Ryan Houdek dbdc7e6b54 Merge pull request #340 from FEX-Emu/skmp/avoid-tzcnt
JIT/x86: Don't use tzcnt
2020-09-02 13:07:12 -07:00
Stefanos Kornilios Mitsis Poiitidis 273db52545 JIT/x86: Don't use tzcnt 2020-09-02 22:57:34 +03:00
Stefanos Kornilios Mitsis Poiitidis b9ed084cc5 IR: Add identity opts for AND/OR/XOR 2020-09-02 21:50:54 +03:00
Stefanos Kornilios Mitsis Poiitidis aa3dc52799 RCLSE: Iterate until there are no changes 2020-09-02 21:34:39 +03:00
Ryan Houdek 04a558bae9 Merge pull request #336 from FEX-Emu/skmp/add-movn
arm64: Add movn to LoadConstant
2020-09-02 09:56:07 -07:00
Stefanos Kornilios Mitsis Poiitidis 15da415ac6 arm64: Add movn to LoadConstant 2020-09-02 19:48:49 +03:00
Ryan Houdek c52f5be1de Merge pull request #334 from Sonicadvance1/enable_assertions_option
Enables assertions on the buildbot
2020-08-31 11:23:25 -07:00
Ryan Houdek b05931caf3 Merge pull request #335 from phire/bitset
Fix minor bug in BitSet/BitSetView
2020-08-30 23:09:36 -07:00
Scott Mansell dfa1ab678f Fix minor bug in BitSet/BitSetView 2020-08-31 18:04:09 +12:00
Ryan Houdek 9d433902f0 Enables assertions on the buildbot
Will slow down the CI process a bit, but it is better to catch the
assertions
2020-08-29 23:35:26 -07:00
Ryan Houdek 74a310eeb2 Enables assertions option from cmake 2020-08-29 23:35:26 -07:00
Ryan Houdek 99f16dbe58 Merge pull request #331 from FEX-Emu/skmp/fix-sched_getaffinity-really
Syscalls: Actually fix sched_getaffinity
2020-08-28 17:43:03 -07:00
Stefanos Kornilios Mitsis Poiitidis 45288506e1 Syscalls: Actually fix sched_getaffinity 2020-08-29 03:11:06 +03:00
Ryan Houdek 898c1776f5 Merge pull request #330 from FEX-Emu/skmp/fix-sched_getaffinity
Syscalls: Fix sched_getaffinity
2020-08-28 14:29:29 -07:00
Stefanos Kornilios Mitsis Poiitidis f16f7dcdd7 Syscalls: Fix sched_getaffinity 2020-08-29 00:18:20 +03:00
Ryan Houdek 71f7b01e93 Merge pull request #327 from FEX-Emu/skmp/fix-btr
Interpreter: Fix Mask calculation for OP_NOT
2020-08-28 13:19:36 -07:00
Stefanos Kornilios Mitsis Poiitidis a4c677bcbf Interpreter: Fix Mask calculation for OP_NOT 2020-08-28 18:24:04 +03:00
Ryan Houdek ab2020fe62 Merge pull request #309 from phire/ir_cleanup
Misc Optimisation and IR cleanup
2020-08-27 23:07:35 -07:00
Ryan Houdek 0ba42946fa Merge pull request #308 from Sonicadvance1/gdbstub_improvements
Extends gdbstub functionality
2020-08-27 13:41:44 -07:00