Commit Graph
662 Commits
Author SHA1 Message Date
Ryan Houdek 36b24ad141 Removes all uses of non-unified memory and SHM regions
Let's just delete the whole thing!
2020-12-10 02:09:52 -08:00
Ryan Houdek 899e24abd0 Removes non-unified memory path from Interpreter 2020-12-10 02:01:14 -08:00
Ryan Houdek dc8caeaf91 Removes non-unified memory path from x86_64 2020-12-10 02:01:14 -08:00
Ryan Houdek 8e3ac44e65 Removes non-unified memory path from ARM64 2020-12-10 02:01:14 -08:00
Ryan Houdek 20a93ba96c Makes us handle DFL smarter
For the ones that should be IGNORE we can safely ignore them at that
point.
For the ones that have a default behaviour of crashing, just go ahead
and crash.

This was having the fun problem space that if we received an ignore
event, we would remove the fault handler then if the guest registered a
handler it would have never been called.

SIGWINCH specifically is one that defaults to ignore and we need to care
about. If SIGWICH happened before the guest registered a handler then it
would never receive the signal.

The ones that their default behaviour is faulting are fine to uninstall
and then immediately crash, since it is a real crash at that point.
2020-12-09 20:07:03 -08:00
Ryan Houdek 30dc9128ca Removes the last usage of 8bit and 16bit multiply
This was causing issues in 32bit xeyes.
A couple of the multiply ops were still using 8bit and 16bit multiply
while the other one was already sexting or zexting the source.
2020-12-04 08:59:52 -08:00
Stefanos Kornilios Mitsis Poiitidis b2b0d9318a arm64: Fix OP_SELECT & OP_CONDJUMP gpr/fpr detection 2020-12-04 16:04:27 +02:00
Stefanos Kornilios Mitsis Poiitidis 1363be8239 x64: Add support for floats in OP_SELECT & OP_CONDJUMP 2020-12-04 15:30:55 +02:00
Stefanos Kornilios Mitsis Poiitidis b32ed1db8c x64: Refactor CC logic, add float compares 2020-12-04 15:30:55 +02:00
Stefanos Kornilios Mitsis Poiitidis b044413952 OpDisp, IR, Backends: Add Float compares to Select, CondJump, COND_F* 2020-12-04 15:30:55 +02:00
Stefanos Kornilios Mitsis Poiitidis cfdf6ebf6b IR: Change FCMP to return x86-style flags 2020-12-04 08:55:19 +02:00
Stefanos Kornilios Mitsis Poiitidis 003991e495 Merge pull request #503 from Sonicadvance1/remove_duplicate_compaction
Remove duplicated compaction pass
2020-12-04 08:44:21 +02:00
Ryan Houdek c116a20e13 Merge pull request #542 from FEX-Emu/skmp/frontend-improve-reps
OpDisp: Read DF outside REP loops as it won't change
2020-12-03 20:23:40 -08:00
Ryan Houdek 439d49b802 Merge pull request #550 from FEX-Emu/skmp/improve-dead-flags
DFSE: Fix dead clag calculation, Extend InvalidateFlags
2020-12-03 20:18:43 -08:00
Ryan Houdek c7c2e56ae5 Merge pull request #552 from FEX-Emu/skmp/perblock-debug-data
JITSYMS: Per-block symbol information
2020-12-03 20:13:34 -08:00
Ryan Houdek 4187123b49 Merge pull request #551 from FEX-Emu/skmp/arm64-backend-opts
arm64: Backend Opts
2020-12-03 20:08:53 -08:00
Ryan Houdek eb57f5f489 Merge pull request #547 from FEX-Emu/skmp/optimize-flag-access
IR: Move BFEs to SetFlag, remove from OP_STOREFLAG
2020-12-03 20:07:53 -08:00
Ryan Houdek 12237abf67 Merge pull request #543 from FEX-Emu/skmp/frontend-improve-ss-sd
frontend: Improve IR for some *SS/*SD opcodes
2020-12-03 20:06:47 -08:00
Ryan Houdek 17402aa02d Remove duplicated compaction pass
RA Pass and passmanager compaction pass don't need to be independent.
This saves some memory.

In the future we should allow passes to fetch passes by name, that will
be part of the PassManager improvement in the future
2020-12-03 19:58:47 -08:00
Stefanos Kornilios Mitsis Poiitidis 62a5bc457d OpDisp: Read DF outside REP loops as it won't change 2020-12-03 20:19:00 +02:00
Stefanos Kornilios Mitsis Poiitidis b2d862a8c7 IR: Replace Sext with Sbfe 2020-12-03 20:08:08 +02:00
Stefanos Kornilios Mitsis Poiitidis bc5b235b7c CompileService: Fix DebugData 2020-12-03 18:58:58 +02:00
Stefanos Kornilios Mitsis Poiitidis 28bff432e5 DebugData: Add Subblock list, populate it from arm64 backend 2020-12-03 18:43:38 +02:00
Stefanos Kornilios Mitsis Poiitidis 12fcd5c2c7 arm64: Avoid needless movs in OP_VMOV 2020-12-03 18:41:51 +02:00
Stefanos Kornilios Mitsis Poiitidis 27e2c4fbfd arm64: Optimize VIns* to only use temp reg if it must 2020-12-03 18:41:44 +02:00
Stefanos Kornilios Mitsis Poiitidis d7316fe2d0 OpDisp, IR: Extend InvalidateFlags to invalidate a bitfield, invalidate PF when not emulated 2020-12-03 18:38:16 +02:00
Stefanos Kornilios Mitsis Poiitidis 55f8e64068 IR: Move BFEs to SetFlag, remove from OP_STOREFLAG 2020-12-03 18:05:53 +02:00
Stefanos Kornilios Mitsis Poiitidis de6eee510e x86tables: Mark some SD sse opcodes as 64-bit to reduce overhead 2020-12-03 17:31:58 +02:00
Stefanos Kornilios Mitsis Poiitidis f0e2d9364f OpDisp: Avoid some pointless vinserts 2020-12-03 17:31:51 +02: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 fb973f23dd Fixes manufacturer id for CPUID fn8000_0000
This has the same vendor ID in the as CPUID fn0000_0000
2020-11-26 17:44:46 -08:00
Scott Mansell ee98cbfe3f IR: Remove Rol as it's not native to ARM 2020-11-26 14:00:24 +13:00
Scott Mansell 0ec6e40a67 IR: Remove 8/16bit ROR
Opcode Dispatcher will now explictly emualte them
2020-11-26 14:00:24 +13:00
Scott Mansell 5b1d4eadd4 IR: Make BFI sizes explicit
Otherwise they can be quite hard to get right.
2020-11-26 12:40:37 +13:00
Ryan Houdek 269c73f60b Merge pull request #531 from Sonicadvance1/remove_dead_tls
Removes dead TLS setting code
2020-11-25 13:45:29 -08:00
Scott Mansell 5ca6435dd5 GdbServer: Add Hacky segfault signal handling 2020-11-26 10:36:29 +13:00
Scott Mansell cf8365d923 Core: Fix start paused
Otherwise we can't attach to the program
with GDB server before it runs.
2020-11-26 10:19:55 +13:00
Ryan Houdek 6605c6e6eb Removes dead TLS setting code
This is no longer necessary now that phire fixed mapping of static elfs
2020-11-25 13:18:57 -08:00
Ryan Houdek 830d8146cf Support unity+mono+bdwgc sigsuspend GC shenanigans 2020-11-20 01:07:54 -08:00
Ryan Houdek f32bc6a5a5 Merge pull request #489 from FEX-Emu/skmp/cc-bypass
OpDisp: flags bypass
2020-11-20 00:48:37 -08:00
Ryan Houdek 1aae6bd231 Revert "Adds resizable frontend decoded buffer"
This reverts commit c122516077.
2020-11-20 00:06:30 -08:00
Ryan Houdek 4503f41957 Merge pull request #473 from FEX-Emu/skmp/memops-addressgen
Complex address generation for Load/StoreMem
2020-11-19 23:57:20 -08:00
Ryan Houdek c430f10c86 Implements a threaded compile service routine
This is made to be completely synchronous to a thread
2020-11-18 10:07:47 -08:00
Stefanos Kornilios Mitsis Poiitidis 0d1fc2869d Merge pull request #512 from Sonicadvance1/cpubackend_compile_service
Adds support for the CPUBackends to run in a compile thread
2020-11-18 20:04:58 +02:00
Stefanos Kornilios Mitsis Poiitidis 59c9138282 Merge pull request #511 from Sonicadvance1/compile_service_shared_data
Adds function for copying data required for threaded compiler
2020-11-18 20:03:27 +02:00
Stefanos Kornilios Mitsis Poiitidis ee2c1cf925 Merge pull request #509 from Sonicadvance1/fix_cache_clear
Fixes cache clear bug on x86_64
2020-11-18 11:16:19 +02:00
Ryan Houdek c677fdf3e1 Adds support for the CPUBackends to run in a compile thread
These take different paths depending on if it was for a compile thread
or not
2020-11-17 14:07:18 -08:00
Ryan Houdek edce88e66e Ensures that we don't try and free the Dispatcher code if it doesn't
exist

This doesn't happen yet but it will soon
2020-11-17 14:07:10 -08:00
Ryan Houdek 47d47fac86 Adds function for copying data required for threaded compiler
These structures need to be shared to the threaded compiler, so set it
up for copying.

Will be necessary for the compile service
2020-11-17 13:48:10 -08:00
Ryan Houdek f775bea63f Fixes cache clear bug on x86_64
On cache clear this would munmap pages 1.5x past the code cache.
This most certainly leads to spurious bugs
2020-11-17 13:03:53 -08:00