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
Ryan Houdek
c122516077
Adds resizable frontend decoded buffer
...
Allows us to save memory in the frontend decoder by starting out with a
small buffer until we hit larger code blocks.
2020-11-17 12:43:26 -08:00
Stefanos Kornilios Mitsis Poiitidis
42be02b84c
JITs: Review feedback
2020-11-17 16:46:23 +02:00
Stefanos Kornilios Mitsis Poiitidis
e228295f6e
Jit: Remove conditional TSO on backends
2020-11-17 16:42:21 +02:00
Stefanos Kornilios Mitsis Poiitidis
92eb140510
OpDisp: Rename TSO helper to _Load/_StoreAutoTSO
2020-11-17 16:39:38 +02:00
Stefanos Kornilios Mitsis Poiitidis
f38179913a
IR: Swith MemoryOffsetType to a type from uint8_t
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
d7191891a0
Load/Store: Use ->Addr and ->Offset in Interpreter
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
0e329f4e05
Load/StoreMem: Cleanup Complex address gen
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
b82c8b9e92
ConstProp: Fix inline consts for load/storemem
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
703a025a38
IR/Arm64: Inline Constants for MemoryOps
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
552f5db006
TSO: Only emit if enabled
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
9fdd2a5b10
LoadMem/StoreMem: Add OffsetType, OffsetScale
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
f0cedab31c
Fix unified mem, Add interpreter
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
2ff55a0420
Add arm64 backend, disable for TSO
2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis
74254a1a9c
IR: Load/Store mem with two args
2020-11-17 16:23:48 +02:00
Ryan Houdek
deaf879e78
Merge pull request #490 from FEX-Emu/skmp/extended-condjump-branching
...
CondJump: Add support for two operands to match Select
2020-11-17 01:19:21 -08:00
Stefanos Kornilios Mitsis Poiitidis
1ffc8c15e2
Backends: Add OP_INVALIDATEFLAGS as nop
2020-11-17 11:11:18 +02:00
Stefanos Kornilios Mitsis Poiitidis
11e12a9b36
Add --unsafe-no-pf
2020-11-17 11:11:13 +02:00
Stefanos Kornilios Mitsis Poiitidis
8fc6f73571
IR: InvalidateFlags + --abi-local-flags
...
- InvalidateFlags pseudo-op is a hint for the Dead Flags Elimination pass that flags are not needed past that point
- Adds a new option, --abi-local-flags, that invalidates the flags on CALLs or RETs. This might break code that doesn't follow the ABI rules.
2020-11-17 11:08:29 +02:00
Stefanos Kornilios Mitsis Poiitidis
2dad4718d6
IR: Add DumpIR option, --dump-ir command line
...
This dumps the IR before and after optimizations
--dump-ir can be
"no" -> Do not dump
"stderr" -> Dump to stderr
"stdout" -> Dump to stdout
"some/path" -> Dump to "some/path/$GuestRip-pre.ir" and "some/path/$GuestRip-post.ir"
2020-11-16 16:14:07 +02:00
Stefanos Kornilios Mitsis Poiitidis
ce2dda806c
OpDisp: Flag calculation bypass
2020-11-09 20:04:35 +02:00
Stefanos Kornilios Mitsis Poiitidis
075958fa67
CondJump: Fix arm64 build
2020-11-06 10:54:52 +02:00
Stefanos Kornilios Mitsis Poiitidis
a2ffbfedb3
CondJump: Add x86 and ipr backends
2020-11-06 10:54:52 +02:00
Stefanos Kornilios Mitsis Poiitidis
f9f80b77e5
CondJump/Arm64: Use cbnz/cbz if faster
2020-11-06 10:54:52 +02:00
Stefanos Kornilios Mitsis Poiitidis
709f5cd925
CondJump: Now with cmp/b.cc support
2020-11-06 10:54:52 +02:00
Stefanos Kornilios Mitsis Poiitidis
eafe853c75
CondJump: Switch to two arguments + Cond for flexible branching
2020-11-06 10:54:52 +02:00
Stefanos Kornilios Mitsis Poiitidis
009244c5e0
Merge pull request #488 from FEX-Emu/skmp/improved-select
...
Select: Add compare & Data sizes, cset/setcc specializations
2020-11-06 10:43:33 +02:00
Stefanos Kornilios Mitsis Poiitidis
2e6a3febfb
Merge pull request #491 from FEX-Emu/skmp/cc-refactor
...
OpDisp: jCC, setCC & cmovCC refactor
2020-11-06 09:11:02 +02:00
Stefanos Kornilios Mitsis Poiitidis
547b00cbb4
Merge pull request #483 from FEX-Emu/skmp/mul-arm64-less-exts
...
MUL: remove zext/sexts from 32 bit form
2020-11-06 09:06:54 +02:00
Stefanos Kornilios Mitsis Poiitidis
aea18a3c03
Merge pull request #480 from FEX-Emu/skmp/fallthrough-branching
...
JIT: fallthrough branching
2020-11-06 08:59:41 +02:00