Commit Graph

147 Commits

Author SHA1 Message Date
Scott Mansell
98cb54e3e4
Merge pull request #812 from phire/both_sides
Allow both ARM64 and X86_64 jits to be compiled at the same time
2021-03-09 14:59:11 +13:00
Scott Mansell
9c339c85c6 Cmake: allow independant control of both jits 2021-03-08 16:30:25 +13:00
Ryan Houdek
8222acdf20 Disabled cmake check for python development
We only need the interpreter
2021-03-06 06:06:59 -08:00
Ryan Houdek
69891867b1 Adds python version check 2021-02-05 10:36:52 -08:00
Scott Mansell
89bfacd845 Don't build thunks by default
Allow people to build fex without a cross-compiler installed
2021-02-02 16:47:55 +13:00
Ryan Houdek
f58d018934 Enables vixl asserts when in debug mode globally
Fixes an issue where some header asserts were missed
2021-01-27 00:52:37 -08: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
d7868fd2bd
Merge pull request #627 from Sonicadvance1/disable_visual_debugger
Disables visual debugger by default
2021-01-11 11:00:16 +02:00
Ryan Houdek
c2b1d68ed1 Disables visual debugger by default
This is currently broken and going to be broken more soon
2021-01-10 02:19:39 -08:00
Stefanos Kornilios Mitsis Poiitidis
278e156a8a Tests: Move timeout to ctest from python + timeout 2021-01-09 19:26:15 +02:00
Ryan Houdek
9f5a507f67 Disables lower 32bit mapping check when ASAN is compiled in
LLVM ASAN sticks some things in the upper range of the 32bit memory
range.
So we have to just allow it when using LLVM asan
2020-12-14 03:59:04 -08:00
Ryan Houdek
1b1edda72d Adds an environment variable for installation directly
This will allow us to look for a global application profile in our
install location.
Once we have things to install there.
2020-12-05 21:17:52 -08:00
Ryan Houdek
a28df9f5c1 Moves SonicUtils in to FEXCore
Removes the extraneous and dead VM CPU backend
2020-11-29 00:30:28 -08:00
Ryan Houdek
06482600e9 Remove annoying vixl warnings 2020-11-20 01:58:58 -08:00
Ryan Houdek
551f6b49cd Enables C++20 feature level
There are a few nice features in C++20 that can make our life easier.
This isn't requiring the full C++20 suite of features, but instead
should allow us to start bringing in features that were at least in
Clang 10.

LLVM 11 came out yesterday (2020-10-12) so it would be a shame to have
that as a minimum requirement.
2020-10-17 16:03:12 -07:00
Ryan Houdek
4adadaba6b Adds support for cmake IWYU option
Only adds the option to enable the Include-What-You-Use program.
This will be useful for cleaning up includes
2020-10-13 17:39:52 -07:00
Ryan Houdek
c0ce5a3101 Ensures architeecture define is defined in the root cmake 2020-09-22 13:05:42 -07:00
Ryan Houdek
74a310eeb2 Enables assertions option from cmake 2020-08-29 23:35:26 -07:00
Scott Mansell
e5c27be7e1 GuestLibs: Allow configuring compiler via cmake 2020-08-21 00:38:25 +12:00
Ryan Houdek
7205ac56cd Throw an error in CMake if someone attempts to compile with GCC
FEX doesn't support GCC.
2020-08-19 23:25:29 -07:00
Stefanos Kornilios Mitsis Poiitidis
2ee277d1c8
Merge pull request #293 from Sonicadvance1/auto_ccache
Automatically enables ccache if the program is found
2020-08-12 19:47:59 +03:00
Stefanos Kornilios Mitsis Poiitidis
cb34056f18
Merge pull request #294 from Sonicadvance1/aarch64_signals
Signals for AArch64
2020-08-12 19:47:10 +03:00
Ryan Houdek
448516882c Implements signal handling in the AArch64 JIT
Also removes the simulator for running on x86-64, which we can no longer
support.
2020-08-11 00:33:50 +01:00
Ryan Houdek
b4893b10db Automatically enables ccache if the program is found
This makes it easier to not forget to use this
2020-08-10 19:31:36 +01:00
Stefanos Kornilios Mitsis Poiitidis
db633b8394 Thunklibs: Add partial X11, SDL, GL, EGL, asound, cmake integration 2020-08-08 14:48:20 +03:00
Ryan Houdek
0766de70dd
Merge pull request #89 from Sonicadvance1/wip_pair
CMPXCHG8B and CMPXCHG16B support
2020-04-10 00:56:26 -07:00
Ryan Houdek
0ce0c4e895 Actually unconditionally enable PIE through cmake
behaviour around enabling PIC it was only working on one platform.

This follows through with the NEW cmake behaviour required to enable
PIE.
Very specifically you have to set the cmake variable, you have to set
the new policy, AND you have to have an explicit check for pie support.
With any of those three things missing then PIE won't be enabled
2020-04-08 13:06:35 -07:00
Ryan Houdek
980448bcf9 Adds interpreter support for the new pair IR ops 2020-04-08 00:17:54 -07:00
Ryan Houdek
7cb97ed2f8
Merge pull request #16 from Sonicadvance1/fixes_cmake_aarch64
Fixes CMake configuration on AArch64 host
2020-03-13 13:04:38 -07:00
Ryan Houdek
d082a5f551 Fixes CMake configuration on AArch64 host 2020-03-12 16:28:51 -07:00
Ryan Houdek
85a882909b Enables PIC
We don't require non-pie and this can also solve some linking problems I
saw on Arch64 hosts
2020-03-12 16:26:13 -07: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
891ac58d8f Fixes FEXCore cmake file to no longer search for SonicUtils subdir 2020-03-06 09:10:32 +02:00
Ryan Houdek
44593feed0 Ensure if ENABLE_LTO is set to false to disable LTO 2020-03-06 09:08:47 +02:00
Ryan Houdek
99dc73441c Update project externals 2020-03-06 09:08:23 +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
bc294164e3 Updates project to allow it to be installed
Installs as both a static library and a shared library
2020-03-06 07:55:59 +02:00
Ryan Houdek
939e210a68 Updates SonicUtils
Makes changes to match latest changes
2020-03-06 07:55:54 +02:00
Ryan Houdek
c21f711417 Adds a JitSymbols interface
This allows linux perf to see execution inside of JIT functions.
This could be extended in the future to support something like vtune or
oprofile.
2020-03-06 07:55:16 +02:00
Ryan Houdek
e59a6fcd5d Add cmake message about which JIT we are using 2020-03-06 07:54:30 +02:00
Ryan Houdek
7252050e42 Initial commit 2020-03-06 07:48:39 +02:00
Stefanos Kornilios Mitsis Poiitidis
a468d10d56 SonicUtils: Move to External/SonicUtils 2020-03-06 07:24:46 +02:00
Ryan Houdek
33daca99e2 Adjust the project to be able to be installed
Cleans up file locations
2019-11-14 23:10:13 -08:00
Ryan Houdek
1d5e79744d Adds a bunch of changes for ELF shared library support
Isn't complete but it is getting there
2019-10-09 17:28:35 -07:00
Ryan Houdek
00407d0454 Implement an x86-64 KVM interface library
It isn't all encompassing but it is good for an initial implementation
2019-05-30 05:00:41 -07:00
Ryan Houdek
dce985f859 Initial Commit 2018-11-15 18:05:16 -08:00