Commit Graph
9533 Commits
Author SHA1 Message Date
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