Commit Graph
9533 Commits
Author SHA1 Message Date
Stefanos Kornilios Mitsis Poiitidis 5ff2e0edf7 Merge pull request #507 from Sonicadvance1/resizable_frontend_buffer
Adds resizable frontend decoded buffer
2020-11-18 11:14:41 +02:00
Stefanos Kornilios Mitsis Poiitidis 94003798ff Merge pull request #506 from Sonicadvance1/irlistview_copy
Allow copying of an IRListView copy
2020-11-18 11:13:27 +02:00
Stefanos Kornilios Mitsis Poiitidis d288602eeb Merge pull request #505 from Sonicadvance1/fix_missing_pragma
Adds missing pragma in RA pass
2020-11-18 11:11:55 +02:00
Stefanos Kornilios Mitsis Poiitidis c6abf2b97a Merge pull request #504 from Sonicadvance1/debug_logs
Ensures pass validation goes through LogManager
2020-11-18 10:24:49 +02:00
Stefanos Kornilios Mitsis Poiitidis 1590506e41 Merge pull request #502 from Sonicadvance1/shebang_redirection
Adds support for shebang redirection
2020-11-18 10:19:18 +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 71a9f2cb71 Captures another CPU count file
Some application was using this to determine CPU count as well
2020-11-17 12:56:18 -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
Ryan Houdek 1b21bb7699 Allow copying of an IRListView copy
This will be useful with the compile service coming up to keep
IRListViews coherent across threads
2020-11-17 12:31:53 -08:00
Ryan Houdek a1dacf87ac Adds missing pragma in RA pass 2020-11-17 12:29:28 -08:00
Ryan Houdek d17530623b Ensures pass validation goes through LogManager
Now that it supports large strings we can push these through here.
We really need to avoid touching stdout/stderr as an interpreter
2020-11-17 12:28:17 -08:00
Ryan Houdek eb094bcf98 Adds support for shebang redirection
If a file has as shebang interpreter then switch over to that.
Fixes launching a bunch of titles in Steam where their launcher is a
bash script
2020-11-17 12:18:30 -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 4ec41088e3 Typofix: UnwarpNode -> UnwrapNode 2020-11-17 16:25:00 +02:00
Stefanos Kornilios Mitsis Poiitidis 1073d4053d IR Tests: Update LoadMem to use extended syntax 2020-11-17 16:23:50 +02:00
Stefanos Kornilios Mitsis Poiitidis c5316b1fc5 IR Loader: Add support for MemOffsetType, Fix %Invalid 2020-11-17 16:23:50 +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
Ryan Houdek 96472a9b59 Merge pull request #486 from FEX-Emu/skmp/abi-opts
Unsafe opts: --unsafe-local-flags, --unsafe-no-pf, --unsafe-no-tso
2020-11-17 01:16:06 -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 0d7984fe0f Rename unsafe options under --unsafe 2020-11-17 11:08:29 +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 908796be1a Typofix: UnwarpNode -> UnwrapNode 2020-11-17 11:06:01 +02:00
Stefanos Kornilios Mitsis Poiitidis 973b97bc49 Merge pull request #501 from Sonicadvance1/logman_fix
Fixes long messages passed through logman
2020-11-17 09:56:32 +02:00
Ryan Houdek 07310bc24a Fixes long messages passed through logman
Default to 1024 bytes in the working string, but if something exceeds it
then try again.

Not common that we are passing through a large string but debug strings
can hit that limit
2020-11-16 20:46:06 -08:00
Ryan Houdek 212ff41914 Merge pull request #482 from FEX-Emu/skmp/rclse-improvements
RCLSE improvements
2020-11-16 18:13:13 -08:00
Ryan Houdek 29c5e8cbbb Merge pull request #479 from FEX-Emu/skmp/dead-gpr-store-elim
IR: Add DeadGPRStoreElimination
2020-11-16 18:11:26 -08:00
Ryan Houdek 1cd833e516 Merge pull request #499 from FEX-Emu/skmp/muliblock-ra-livespans
RA: Greedily extend live ranges when values are used out of defining block
2020-11-16 18:10:51 -08:00
Ryan Houdek d8bc97a32c Merge pull request #500 from FEX-Emu/skmp/block-dumps
IR: Add DumpIR option, --dump-ir command line
2020-11-16 18:07:33 -08:00
Stefanos Kornilios Mitsis Poiitidis 075f3edcfe RA: Greedily extend live ranges when values are used out of defining block
This fixes bogus RA when live ranges aren't contiguous, at the cost of
excessively increased register pressure.

This doesn't fix multi-block spilling, which requires fully working
PHI nodes among other things. As a workaround these ranges are marked
as unspillable.
2020-11-17 01:41:02 +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 31b333c40a DeadGPRStoreElim: Review feedback 2020-11-10 19:13:37 +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 89dafc956e CondJump: Only fold select if possible 2020-11-06 10:54:52 +02:00