Lioncash
37e2210f64
DecodedOperand: Convert operand type into an enum class
...
Now possible in a less messy way, since the type is now centralized in
one location.
Makes it strongly typed and prevents any potential accidental implicit
assignments to Type instead of something intended for the Data members.
2021-06-02 06:51:15 -04:00
Lioncash
1f0bc49e54
DecodedOperand: Add helper functions for type testing
...
Significantly shortens the amount of code necessary for testing the type
of a decoded operand.
Also relocates the type field out of all the union types to have it in a
central location.
2021-06-02 05:59:12 -04:00
Ryan Houdek
edd1dfdfe8
Merge pull request #1040 from Sonicadvance1/more_syscalls_5_12
...
Implements more syscalls for supporting a higher guest kernel version
2021-06-01 00:27:50 -07:00
Ryan Houdek
2d342d4662
Handle user provided siginfo_t with user signal
...
If the guest has sent a signal and the si_code is SI_USER then
we need to pass that siginfo_t through without touching it.
User could be sticking whatever they want in to that struct
2021-05-27 22:59:27 -07:00
Ryan Houdek
211e7bf0f0
Implements SSE4.1 insertps
...
Cheap Golf is using this instruction unconditionally.
With this implemented the game now runs
2021-05-26 21:40:39 -07:00
Ryan Houdek
6cba775d4e
Merge pull request #1032 from FEX-Emu/skmp/aotir-gen-mt
...
Multi threaded AOTGen
2021-05-24 23:06:13 -07:00
Lioncash
37a33bf127
Externals: Add fmt as an external
...
Begins the process of addressing issue #146 .
This is separated off, so that others can make use of fmt for other
purposes (general localized non-sucky string formatting), while the
logging rework is being tackled.
2021-05-20 13:18:38 -04:00
Stefanos Kornilios Mitsis Poiitidis
d70c91ddc6
AOTIR: Multi-threaded AOTGen
2021-05-19 14:19:55 +03:00
Stefanos Kornilios Mitsis Poiitidis
b8dc63754b
AOTIR: Don't keep IR,RA,Code data around when aotirgenerating
2021-05-11 15:15:39 +03:00
Stefanos Kornilios Mitsis Poiitidis
df8f1850ae
AOTIR: .aotir files are now stream-written
2021-05-11 14:37:12 +03:00
Ryan Houdek
82b04d9886
Fixes JITSymbols for x86-64 JIT
2021-05-06 01:12:51 -07:00
Ryan Houdek
1e40148f60
Fixes host thread stacks ending up in lower 32-bit VA
...
Overriding glibc's mmap and munmap functions don't encapsulate that functions they use
for allocating stack data so it was falling down the system mmap/munmap path.
This was causing host side stacks to end up in the 32-bit VA space in 32-bit applications.
2021-05-04 22:15:46 -07:00
Stefanos Kornilios Mitsis Poiitidis
c8bb02f3a6
JIT: Add reason 1 (0xCD) to OP_BREAK implementations
2021-05-04 13:22:00 +03:00
Ryan Houdek
fd6d33d197
Merge pull request #996 from FEX-Emu/skmp/aotirgen
...
AOTIR: Offline Generation
2021-05-03 15:58:57 -07:00
Stefanos Kornilios Mitsis Poiitidis
1d82e9e59e
JIT: Stub Break reasons 2, 3
2021-05-03 05:42:46 +03:00
Ryan Houdek
8d1f9a9081
Merge pull request #1006 from Sonicadvance1/implement_clflush
...
Implements support for CLFLUSH
2021-05-02 12:27:54 -07:00
Ryan Houdek
4961604807
Implements support for CLFLUSH
...
JRE requires this to run
2021-05-02 12:18:35 -07:00
Stefanos Kornilios Mitsis Poiitidis
d6b7f32d33
AOTGen: Cleanup unwind symbol logic, add to x86-32 binaries
2021-05-02 11:08:12 +03:00
Ryan Houdek
63dee0e132
Remove reliance on librt and libnuma
...
These can fall down the raw syscall path
2021-05-01 17:40:33 -07:00
Ryan Houdek
a8881e8835
Adds option to force 32-bit allocator
2021-05-01 09:19:55 -07:00
Ryan Houdek
94017d2e65
On old kernels, steal the 32-bit address space before the 64-bit
...
Increases speed of startup
2021-05-01 09:06:39 -07:00
Ryan Houdek
13b93ef6b5
Allow memory allocation to go through if the base was above the lower bound
2021-05-01 09:06:39 -07:00
Ryan Houdek
417e8836a4
Arm64: Fixes some wrong sign extensions
2021-05-01 07:39:14 -07:00
Ryan Houdek
c5bda47b2a
Adds more allocator hooking
2021-05-01 07:39:14 -07:00
Ryan Houdek
5067737052
Adds 64-bit allocator
2021-05-01 07:39:14 -07:00
Ryan Houdek
5143100a73
Switches more usages of memory allocation routines over to FEX internal
2021-05-01 07:39:14 -07:00
Stefanos Kornilios Mitsis Poiitidis
8b6e767742
Frontend: Slightly more resilient max instruction size handling
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
331549c64a
RLSE: Use Constant, not inline constant, let ConstProp generate all inline consts
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
be0b29bbc6
OpDisp: Convert more asserts to soft-errors
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
ee8f8ed176
Improve error handling
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
5b8cbae1e1
Core/Frontend: Improve error handling
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
b98ef9e48b
Core/Frontend: Improve error handling
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
fd724448ab
Front End: Fix an error check
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
f4083883ca
Frontend: Fix ExternalBranches initialization
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
ab44f800f7
AOTgen: Cleaner interfaces, use LogMan
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
1a5bc39d09
Rebase fixes
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
244ef94e9b
AOTIR: Generate list of files with code, add Scripts/FEXUpdateAOTIRCache.sh to generate all files
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
a85ef061d1
AOITR: Add AOTIRGenerate fo FEXLoader option that does generation
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
4e847d03b7
Remove more assertions for invalid code
2021-05-01 09:40:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
ce9324f50f
Kinda-parse unwind table
2021-05-01 09:40:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
0897fc4a0a
pretrans wip
2021-05-01 09:40:49 +03:00
Ryan Houdek
d256bc59fd
Override glibc allocator functions
2021-04-30 18:28:45 -07:00
Ryan Houdek
e0d6f4bc34
Make sure link jemalloc in FEXCore
2021-04-30 18:28:45 -07:00
Ryan Houdek
73e61b0c8e
Switches default logging output to stderr
...
stdout is too likely to break something
2021-04-30 18:28:45 -07:00
Stefanos Kornilios Mitsis Poiitidis
8a73783a07
AOTIR: Use FEXCore::Allocator
2021-04-29 08:16:21 +03:00
Stefanos Kornilios Mitsis Poiitidis
32b4b02302
AOTIR: mmap based loading
2021-04-28 13:08:43 +03:00
Stefanos Kornilios Mitsis Poiitidis
528b01ad7a
Merge pull request #988 from Sonicadvance1/memory_layout_optimizations
...
Memory layout optimizations
2021-04-28 12:31:53 +03:00
Ryan Houdek
bab5927931
Merge pull request #981 from Sonicadvance1/optimize_long_divide
...
Adds Long Divide removal pass
2021-04-26 23:48:50 -07:00
Ryan Houdek
6255eba524
Memory layout optimizations
...
Some of these memory layouts weren't optimal for ARM loading.
This is now significantly improved
2021-04-26 23:48:22 -07:00
Ryan Houdek
04e0baadc6
Changes LogMan assert to defines
...
C++ no-op functions can't optimize out the predicate arguments in all cases.
This was causing a problem where zero cost assertions weren't actually zero cost.
The only way to resolve this is to actually use macros sadly enough.
This will give a fairly hefty performance uplift with anything operating on IR.
2021-04-26 13:49:35 -07:00