Commit Graph
1762 Commits
Author SHA1 Message Date
Stefanos Kornilios Mitsis Poiitidis b3600a453c RA/SRA: Don't read-alias not full sized regs, it is not safe 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 30d7c02b60 arm64: Really fix Popcount to take into account opsize 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 5f481ff56d IR: Fix Ashr, Ror OpSize calculation 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis c518151800 IR: Fix Lshr op size detection 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 20a9b93019 OpDisp: Fix CondJUMPRCXOp 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 76367f0afc arm64: Remove some debug logic 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis c20b27965d arm64: Fix Popcount to take into account opsize 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 6e053f0055 arm64: Fix IsGPR && IsFPR for SRA 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 80d1766bf0 arm64: Correctly handle signal and SRA interactions 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis a1f7c7da55 arm64: Fix Exit handler calling from signal 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis de0ed19e86 Arm64: Fix build for CreateRegPair 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis cdb2075522 X64: Fix RegisterClasses Count 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 5a3c55f621 RA: Fix Class Conflicts 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 204fda62f1 IR: Fix CreateElementPair edge cases, Remove Load/StoreContextPair 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis fbe87101db IR: Remove Load/StoreContextPair 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 17dc0bfcd8 SRA: Only do read-alias if accessing low part of register 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis c67aa0b83d OpDisp: Don't use LoadContextPair, it is kludgy and breaks SRA 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis 9c5a1fd5ea SRA: Static Register Allocation, arm64 only 2021-01-05 17:14:57 +02:00
Stefanos Kornilios Mitsis Poiitidis fbda0e7ba5 Merge pull request #605 from FEX-Emu/skmp/rename-master-main
CI: rename master to main
2021-01-05 17:14:41 +02:00
Stefanos Kornilios Mitsis Poiitidis b587a0c4d9 CI: rename master to main 2021-01-05 16:11:04 +02:00
Stefanos Kornilios Mitsis Poiitidis f724392ef8 Merge pull request #601 from Sonicadvance1/fix_cvtsi2ss_64bit
Adds support for proper sized GPR->FPR sized conversions
2021-01-05 12:03:33 +02:00
Stefanos Kornilios Mitsis Poiitidis f6112c6ee2 Merge pull request #597 from Sonicadvance1/prefetch
Implements the rest of the prefetch ops and nops
2021-01-05 11:49:39 +02:00
Ryan Houdek 05ee4e6d7a Adds cvtsi2ss unit test to ensure proper 64bit->float conversion 2020-12-30 10:07:12 -08:00
Ryan Houdek 4907bda639 Adds support for proper sized GPR->FPR sized conversions
Both x86 and AArch64 support converting from one sized GPR to another
sized FPR. Expose it in our IR op.

Fixes a bug in CVTSI2SS with a 64bit source and it was treating the
input source as a 32bit value.

eg:
0x0000'0000'FFFF'FFFF was treated as converting to -1 float, which was wrong since it is a 64bit value
2020-12-30 10:07:12 -08:00
Ryan Houdek 5a068c1679 Implements a unit test that just spins through all the prefetch encodings
Hits the reserved ops as well since these are architectually defined to
be forward compatible as prefetch and will behave as a prefetch or as a
NOP depending.
2020-12-27 19:10:49 -08:00
Ryan Houdek 8bd76885ea Implements the rest of the prefetch ops and nops
Prefetch is highly architecture specific and a lot of these don't
actually map 1:1 with AArch64 anyway.
Just nop out
2020-12-27 19:10:41 -08:00
Stefanos Kornilios Mitsis Poiitidis e442e43295 Merge pull request #589 from Sonicadvance1/remove_dead_handlers
Removes dead HandleSyscall function
2020-12-25 15:15:51 +02:00
Stefanos Kornilios Mitsis Poiitidis 3cfae8ab30 Merge pull request #588 from Sonicadvance1/32bit_table_fixes
Fixes some tables definitions for 32bit
2020-12-25 15:15:36 +02:00
Stefanos Kornilios Mitsis Poiitidis a2637f95b1 Merge pull request #593 from FEX-Emu/add-code-of-conduct-1
Create CODE_OF_CONDUCT.md
2020-12-25 15:15:14 +02:00
Ryan Houdek 2c3b151e68 Merge pull request #595 from FEX-Emu/skmp/hotfix-zext-overelimination
Hotfix: Disable ConstProp/RemoveUselessMasking, add a test for it
2020-12-25 05:10:07 -08:00
Stefanos Kornilios Mitsis Poiitidis 2fbf22a9de Hotfix: Disable ConstProp/RemoveUselessMasking, add a test for it 2020-12-25 15:04:27 +02:00
Ryan Houdek c2e81c60a7 Update CODE_OF_CONDUCT.md 2020-12-25 01:57:09 -08:00
Ryan Houdek a02d63e224 Create CODE_OF_CONDUCT.md 2020-12-25 01:43:22 -08:00
Ryan Houdek ca2a10e0e5 Removes dead HandleSyscall function
The virtual function is called directly, so we were missing the strace
functionality
2020-12-19 19:50:33 -08:00
Ryan Houdek 69de873c34 Fixes some tables definitions for 32bit 2020-12-19 19:33:28 -08:00
Stefanos Kornilios Mitsis Poiitidis ef75b8e4ec Merge pull request #582 from Sonicadvance1/move_syscalls
Moves FEXCore's SignalDelegator and SyscallHandler to the frontend
2020-12-16 12:52:39 +02:00
Stefanos Kornilios Mitsis Poiitidis 5889ad9d60 Merge pull request #584 from Sonicadvance1/asan_fixes
Fixes I found when running ASAN
2020-12-14 20:02:56 +02:00
Stefanos Kornilios Mitsis Poiitidis 3e97b358be Merge pull request #583 from Sonicadvance1/FEXConfig_changes
Fixes for FEXConfig
2020-12-14 15:47:40 +02:00
Ryan Houdek e50a03fcdc Some warning fixes and uninitialized values fixes in ConstProp 2020-12-14 04:00:04 -08:00
Ryan Houdek 9f5a507f67 Disables lower 32bit mapping check when ASAN is compiled in
LLVM ASAN sticks some things in the upper range of the 32bit memory
range.
So we have to just allow it when using LLVM asan
2020-12-14 03:59:04 -08:00
Ryan Houdek 7eb708afee Shuts up a c++20 warning
This operator== is claiming to be ambiguous.
Just make the function const to make it unambiguous
2020-12-14 03:57:56 -08:00
Ryan Houdek ba134ea634 Fixes a bug in RA that valgrind found
Needs to ensure the interference list only checks against the class
interference if that register fits in its array.

Checking only empty wasn't good enough, check the array size first.
2020-12-14 03:56:39 -08:00
Ryan Houdek 232fac8fb7 Makes sure to memset the invalid node
Valgrind caught it relying on uninitialized values
2020-12-14 03:56:04 -08:00
Ryan Houdek 767fa9eb63 Fixes a bug in our BitSet class
For anything that was allocating less than the minimum element size, it
was allocating zero bytes
2020-12-14 03:55:26 -08:00
Ryan Houdek ae6922b17c Merge pull request #555 from FEX-Emu/skmp/masking-elimination
ConstProp: Masking elimination
2020-12-13 22:44:28 -08:00
Ryan Houdek 92c8303798 Fixes for FEXConfig
Fixes the formatting. Everything was using the incorrect formatting.

Changes the saved msg popup to a generic popup handler.

If a file couldn't be opened, open a popup claiming the error.
Makes it nicer to realize when trying to open main and nothing happens
when the file doesn't exit
2020-12-13 22:39:10 -08:00
Ryan Houdek 37983006f0 Moves FEXCore's SignalDelegator and SyscallHandler to the frontend
Sadly these things can't be split without breaking functionality so it
turns in to a bit of a mess.

SyscallHandler is very much something that is a Linux only construct and
shouldn't be in FEXCore itself. Lets the frontend register a
Syscallhandler with FEXCore. FEXCore itself is then aware of the current
syscall ABI and handles the ABI in an optimal fashion.
So it is not a 100% clean break otherwise we would lose performance.

The SignalDelegator then needs to move to the frontend since the
SyscallHandler requires it for signal based syscalls.
The CPU backend signal handling still needs to happen in FEXCore because
it is a very tight coupling with the CPU backend.
Once we need to support more Signal handling we can give the backends
cleaner support to select which specific OS handler to handle.
2020-12-13 22:38:04 -08:00
Stefanos Kornilios Mitsis Poiitidis 22629b6f5a ConstProp: Remove ROR case, ROR no longer exists 2020-12-12 12:10:14 +02:00
Stefanos Kornilios Mitsis Poiitidis 0df84be18c ConstProp: Remove some BFEs that do nothing 2020-12-12 12:10:14 +02:00
Stefanos Kornilios Mitsis Poiitidis 784cd648f1 ConstProp: SBFE useless masking elim, VMOV elim 2020-12-12 12:10:14 +02:00