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
Ryan Houdek
092f5249c6
Removes NO_REPLY packet from gdbserver
2020-08-27 13:36:57 -07:00
Ryan Houdek
95a8aba433
Extends gdbstub functionality
...
There are a significant number of changes here that I don't really
expect much review on.
Adds a bunch of new features and allows us to support GDB, IDA, and
Binja through their remote GDB debugging facilities.
Ghidra may also work but I haven't tried.
This work isn't quite yet complete to do correct thread stepping yet. We
need to add support for stopping threads using signals since threads may
be stuck inside of a syscall.
I have a hack locally that tries pausing all threads and times out after
a few seconds which works well enough for local testing.
2020-08-27 13:34:42 -07:00
Ryan Houdek
2ecd103aed
Fixes thread stepping
...
This doesn't yet work around the problem of threads stalled in a syscall
2020-08-27 13:34:42 -07:00
Ryan Houdek
61a6b4ebb0
Allows the context to export the thread array
...
This will allow gdbstub to get thread information
2020-08-27 13:34:42 -07:00
Ryan Houdek
8ea871729c
Moves RunningMode to the config struct
2020-08-27 13:34:42 -07:00
Ryan Houdek
33e225a880
Ensures Netstream closes the socket
...
Once the class deconstructs ensure the socket gets closed
2020-08-27 13:34:42 -07:00
Stefanos Kornilios Mitsis Poiitidis
240806ba67
Merge pull request #307 from Sonicadvance1/implement_sigpending
...
Implements rt_sigpending
2020-08-25 16:14:57 +03:00
Scott Mansell
fd06b594d9
Remove BFE's ablitly to handle FPRs
...
All instances have already been moved to other IR_OPs
It's just useless code
Also, an optimisation for X86's BFEs might have crept in
2020-08-26 00:59:28 +12:00
Scott Mansell
65af0335dd
DCSE: Refactor LoadContext slightly
...
* Use a single path for both truncated and non-truncated reads
* Support more truncation types
* Support truncating partial reads
2020-08-26 00:47:40 +12:00
Scott Mansell
6dadf81001
x64jit: FPR 8/16bit Load Context/Mem should zext
...
Fixes OpenGL corruption issue in FTL with previous commits
Also includes an ir test
2020-08-26 00:47:40 +12:00
Scott Mansell
c90945b072
JitArm64: Remove Zext, add Sbfe
2020-08-26 00:47:40 +12:00
Scott Mansell
5cb0827ec0
DCSE: Optimise partial reads.
2020-08-26 00:47:40 +12:00
Scott Mansell
69703af624
Add some ir tests to formalize ALU truncation
2020-08-26 00:47:40 +12:00
Scott Mansell
43615f41ee
Remove some unnessicary BFEs
...
Store result insures 32bit args are always sign extended
Inserting a BFE if needed.
2020-08-26 00:47:40 +12:00
Scott Mansell
5119a0bdb3
Elimiante ALU IR nodes that don't zero extend
...
Add and substract were the main culprits here.
We are trying to more towards a state where:
* Every IR op can expect it isn't given extra bits
on it's input
* Every IR op never sets more bits than it's size
* All unnessicary BFEs are never emitted
* ARM doesn't have to implement special 8 and 16bit versions of IR ops
All masking required to implement 8/16bit math on
arm should be explictly generated from Opcode decoder
2020-08-26 00:47:40 +12:00
Scott Mansell
9af289eb9c
Fix Truncation on context load elimitation
2020-08-26 00:47:40 +12:00
Scott Mansell
8023800213
Implemement Sbfe for x86
...
And fix interpeter
2020-08-26 00:47:40 +12:00
Scott Mansell
66aa9d1953
Formalise that store* ops should zext/truncate
...
The IR mostly worked this way already.
The one change I needed to make was in DCSE.
DCSE needs to add an explict truncate whenever an eliminated store was
doing an implict trunctate.
2020-08-26 00:47:01 +12:00
Scott Mansell
3989772a4f
Remove OP_Zext
...
Zext has confusing sematics and does excatly the same thing as BFE
* Repace with other ops (mostly BFE)
* Allow specifying BFE size
2020-08-26 00:47:01 +12:00
Scott Mansell
e403603676
Merge pull request #306 from phire/fix_segfault
...
InstallToX87Table: Fix segfault in debug assert
2020-08-25 23:35:20 +12:00
Scott Mansell
3031d54823
InstallToX87Table: Fix segfault in debug assert
2020-08-25 20:17:49 +12:00
Ryan Houdek
4621366b5e
Updates unit tests to handle change in sigpending behaviour
2020-08-20 13:48:52 -07:00
Ryan Houdek
758de4deaa
Implements rt_sigpending
...
Any time a guest signal is blocked, add it to the guest signal mask.
This doesn't use a signal queue so repeat signals can end up being lost.
This is expected behaviour
This doesn't help with implementing the problem of unblocking signals
causing the masked signal to be resent
2020-08-20 13:47:03 -07:00
Ryan Houdek
955bdf2964
Merge pull request #305 from phire/unittest_memdata
...
Add support for pre-populated MemoryData to IR and ASM Tests
2020-08-20 10:55:16 -07:00
Scott Mansell
cb6dcf62eb
Add MemoryData to IR and ASM Tests
2020-08-21 01:29:37 +12:00
Scott Mansell
25b2ced2b8
Merge pull request #304 from phire/pass_compiler
...
GuestLibs: Allow configuring compiler via cmake
2020-08-21 01:10:37 +12:00
Scott Mansell
e5c27be7e1
GuestLibs: Allow configuring compiler via cmake
2020-08-21 00:38:25 +12:00
Stefanos Kornilios Mitsis Poiitidis
043c7c62be
Merge pull request #301 from Sonicadvance1/cleanup_tables
...
Small bit of OpDispatcher table cleanup
2020-08-20 11:08:32 +03:00
Stefanos Kornilios Mitsis Poiitidis
a6d188d994
Merge pull request #302 from Sonicadvance1/error_on_gcc
...
Throw an error in CMake if someone attempts to compile with GCC
2020-08-20 10:43:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
64f23b1a22
Merge pull request #298 from FEX-Emu/skmp/fix-xchg
...
Fix xchg
2020-08-20 10:42:18 +03:00
Stefanos Kornilios Mitsis Poiitidis
0736b13800
Tests: Add xchg 32 and 64 bit
2020-08-20 10:32:38 +03:00
Stefanos Kornilios Mitsis Poiitidis
9457119c2f
Jit/armv8.0: Fix AtomicSwap
2020-08-20 10:21:40 +03:00
Stefanos Kornilios Mitsis Poiitidis
70b17848d6
Jit/x86: Fix OP_ATOMICSWAP
2020-08-20 09:55:02 +03:00
Stefanos Kornilios Mitsis Poiitidis
8390f30155
xchg: lock prefix is implied
2020-08-20 09:55:02 +03:00
Stefanos Kornilios Mitsis Poiitidis
11d02c9156
Merge pull request #303 from Sonicadvance1/ioperm
...
Implements ioperm syscall as no permissions
2020-08-20 09:53:55 +03:00
Stefanos Kornilios Mitsis Poiitidis
73b2da07d4
Merge pull request #300 from Sonicadvance1/remove_llvm
...
Removes LLVM from FEX
2020-08-20 09:37:06 +03:00
Ryan Houdek
c7d14a33d4
Implements ioperm syscall as no permissions
...
This syscall requires the application to have root and will fail with
-EPERM otherwise.
Implementing this as just an -EPERM return allows Crispy Doom to run
2020-08-19 23:31:06 -07: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
Ryan Houdek
7fc8e3b685
Small bit of OpDispatcher table cleanup
...
Bunch of templated instructions that didn't need to be templated.
Removes a bunch of duplicate entries.
Saves a couple hundred kilobytes on the final file
2020-08-19 23:15:40 -07:00
Ryan Houdek
a2cd49ed66
Adds some more flags to the x87 tables
2020-08-19 23:09:55 -07:00