Stefanos Kornilios Mitsis Poiitidis
3ebc080bd4
Merge pull request #566 from Sonicadvance1/overlay_config
...
Switches over to having a correctly layered configuration system
2020-12-08 11:14:16 +02:00
Ryan Houdek
f14cd54791
Switches over to having a correctly layered configuration system
...
Instead of having the configuration being loaded and stored in to a
frontend system. First moves the backing store of the configuration in
to FEXCore.
Each layer that is constructed then loads its particular configuration.
After the layers are loaded, then a meta layer is constructed that
merges the layers flat.
This means we will no longer hit the problem where a configuration is
stored in the "main" configuration file, then environment and arguments
passed manage to overwrite it.
The order of the layers going from inner most layer to outer most, with
outermost overwriting previous layer configurations is as follows:
Main < Global application < Local application < Arguments < Environment
One step that needs to be changed in the future is that FEXCore can then
just load its configuration from the layers directly since the data is
in FEXCore now. This will be reserved for a future change so we are less
disruptive.
2020-12-07 11:15:48 -08:00
Ryan Houdek
f091878100
More 32bit syscall fixes
...
fstatfs64 and statfs64 was wrong, the syscall doesn't quite match the
glibc definition
Fixes recvmsg. Specifically the aux data was failing, thus SCM_RIGHTS
wasn't getting passed correctly.
Fixes a couple of time syscalls where their arguments are optional.
2020-12-04 09:30:33 -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
3bc13581a8
Merge pull request #557 from FEX-Emu/skmp/memops-imm-pooling
...
ConstProp: LoadMem/StoreMem imm pooling
2020-12-04 08:54:13 +02:00
Stefanos Kornilios Mitsis Poiitidis
9b6f0df657
Merge pull request #545 from FEX-Emu/skmp/add-dfprse
...
IR: Add a rather ineffective DeadFPRStoreElim Pass
2020-12-04 08:52:47 +02:00
Stefanos Kornilios Mitsis Poiitidis
8e62a6891b
Merge pull request #544 from FEX-Emu/skmp/lse-remove-partial-writes
...
LSE: Also optimize away partial writes
2020-12-04 08:52:21 +02:00
Stefanos Kornilios Mitsis Poiitidis
b9f1bfe362
Merge pull request #540 from Sonicadvance1/32bit_fixes_rebase
...
A wackload of new 32bit syscall support
2020-12-04 08:51:47 +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
Stefanos Kornilios Mitsis Poiitidis
c29f890d7a
IR: Add a rather ineffective DeadFPRStoreElim Pass
2020-12-04 08:08:23 +02:00
Stefanos Kornilios Mitsis Poiitidis
2f12fd6ee4
ConstProp: LoadMem/StoreMem imm pooling
...
If imms used in memops are close enough, generate them with address gen instead
of allocating a new const
2020-12-04 08:04:44 +02:00
Stefanos Kornilios Mitsis Poiitidis
d622e7b557
LSE: Also optimize away partial writes
2020-12-04 07:53:33 +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
bce3d3be8d
Merge pull request #556 from FEX-Emu/skmp/fcmp-optimization
...
ConstProp: FCMP Optimization
2020-12-03 20:21:35 -08:00
Ryan Houdek
a0149dff07
Merge pull request #554 from FEX-Emu/skmp/cmt-around-select
...
CMT: Move unary ops before selects
2020-12-03 20:20:45 -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
91ee753cae
Merge pull request #553 from FEX-Emu/skmp/mul-to-lshl
...
ConstProp: Mul x,#powof2 -> Lshl x,ctz(#powof2)
2020-12-03 20:10:13 -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
310252b97d
A wackload of new 32bit syscall support
...
This implements a bunch of new 32bit syscalls which almost gets FEX to
be able to run Steam.
The main missing syscalls are mremap, shmat, and ioctl for supporting
Steam execution.
2020-12-03 20:03:15 -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
Ryan Houdek
d3201ff498
Merge pull request #546 from FEX-Emu/skmp/sfbe-sext-switcheroo
...
IR: Replace Sext with Sbfe
2020-12-03 15:03:19 -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
0024b7bd46
RA: Fix global value range expansion
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
2e314400bc
ConstProp: FCMP Optimization
...
Removes unused flags from OP_FCMPs
2020-12-03 19:34:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
c802b82450
CMT: Move unary ops before selects, if both True & False values are consts
2020-12-03 19:11:25 +02:00
Stefanos Kornilios Mitsis Poiitidis
46fb0503f0
ConstProp: Mul x,#powof2 -> Lshl x,clz(#powof2)
2020-12-03 19:06:14 +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
4a9718c8e8
DFSE: Use uint64_t for flag bitmask, we use up to bit 47 w/ x87 flags
2020-12-03 18:38:08 +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
Stefanos Kornilios Mitsis Poiitidis
d481bd4ffc
Merge pull request #541 from Sonicadvance1/remove_sonicutils
...
Moves SonicUtils in to FEXCore
2020-12-03 16:54:56 +02:00
Stefanos Kornilios Mitsis Poiitidis
7c40083106
Merge pull request #539 from Sonicadvance1/more_64bit_syscall_movement
...
Moves 64bit sigaltstack and execve to 64bit files
2020-12-03 16:51:38 +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
638201254a
Moves 64bit sigaltstack and execve to 64bit files
...
These need specific 32bit handling
2020-11-27 20:33:23 -08:00
Ryan Houdek
94b034db6c
Moves shmat to 64bit memory specific file
...
This removes the bad attempt to keep shm regions in our 64GB shm region
This will need to be handled specially on the 32bit side through its
memory management once we have that wired up
2020-11-27 00:32:25 -08:00
Ryan Houdek
e23ae78795
Merge pull request #537 from Sonicadvance1/move_memory_x64
...
Moves some memory op implementations to x64 file
2020-11-27 00:20:10 -08:00