Stefanos Kornilios Mitsis Poiitidis
40d2cd8992
Fix asserts
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
4bd997adaa
AOT: Postfix ir files with .aotir
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
a30866a886
Merge pull request #976 from FEX-Emu/skmp/aotir-mmap
...
AOTIR: Switch over to mmap-based loading
2021-04-30 18:24:54 -07:00
Stefanos Kornilios Mitsis Poiitidis
3e1da51cae
Merge pull request #998 from Sonicadvance1/remove_xxhash_check
...
Removes xxhash version check
2021-04-30 12:05:18 +03:00
Stefanos Kornilios Mitsis Poiitidis
4efe973b65
Merge pull request #999 from Sonicadvance1/fix_sdl2_interface_Again
...
Fixes SDL2 interface check...again.
2021-04-30 12:04:50 +03:00
Ryan Houdek
f6cc75de87
Fixes SDL2 interface check...again.
2021-04-30 01:55:08 -07:00
Ryan Houdek
6b082f4ef7
Removes xxhash version check
...
xxhash doesn't yet have a version of the library with pkg-config giving
a version.
Debian has backported a change for this but Arch hasn't.
https://github.com/Cyan4973/xxHash/issues/524
2021-04-30 01:35:03 -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
Stefanos Kornilios Mitsis Poiitidis
cd0492a143
Merge pull request #994 from Sonicadvance1/enable_armv8.4
...
Enables ARMv8.4 CI runner
2021-04-28 09:53:47 +03:00
Ryan Houdek
26bf903b93
Enables ARMv8.4 CI runner
...
Requires #990 and #993 to be merged first
2021-04-27 23:16:39 -07:00
Stefanos Kornilios Mitsis Poiitidis
aae4de106a
Merge pull request #992 from Sonicadvance1/optimize_cpuid
...
Optimizes CPUID generation a bit
2021-04-28 09:12:09 +03:00
Stefanos Kornilios Mitsis Poiitidis
c495d8120d
Merge pull request #993 from Sonicadvance1/fix_sdl_missed_line
...
Oops: Missed line on FEXConfig SDL2
2021-04-28 09:10:52 +03:00
Stefanos Kornilios Mitsis Poiitidis
a6d9425091
Merge pull request #990 from Sonicadvance1/fix_native_m1
...
Work around M1 Parallels hypervisor not showing CPU type
2021-04-28 09:09:08 +03:00
Ryan Houdek
b06ebf486f
Work around M1 Parallels hypervisor not showing CPU type
...
Parallels claims that the CPU is of implementor 0x41 and part number 0.
Easy enough to work around before real numbers get exposed
2021-04-27 22:26:35 -07:00
Ryan Houdek
b17464d81a
Oops: Missed line on FEXConfig SDL2
2021-04-27 16:51:12 -07:00
Ryan Houdek
2ab8a97055
Merge pull request #989 from Sonicadvance1/sdl2_fix
...
Only use SDL2 import target if it exists
2021-04-27 01:11:28 -07:00
Ryan Houdek
34a5eb6d6f
Optimizes CPUID generation a bit
...
The flags calculation is fairly intensive and we were doing it for every core.
Do it once then duplicate it per core instead
Improves generation time quite significantly. A couple of milliseconds converted to half a millisecond
Slight improvement to startup time
2021-04-27 01:09:28 -07:00
Ryan Houdek
2a1a863c58
Only use SDL2 import target if it exists
...
Should fix Arch and Ubuntu 20.04 together
2021-04-27 00:45:20 -07: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
37108058d1
Removes some unnecessary branching checks
...
It doesn't actually matter if the invalid node has has its linked list nodes changed
Faster to just set than to check while in a tight loop
2021-04-26 23:48:22 -07:00
Stefanos Kornilios Mitsis Poiitidis
c3ad571062
Merge pull request #987 from Sonicadvance1/fix_assert_dumb_code
...
Changes LogMan assert to defines
2021-04-27 09:41:12 +03: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
Ryan Houdek
5ffbd97f01
IROp types can be marked const
...
Allows the compiler to know it can be optimized out without LTO
2021-04-26 13:45:37 -07:00
Ryan Houdek
7d4380fe6d
Merge pull request #984 from FEX-Emu/skmp/relocation-fixes
...
IR: Fix RIP relocation edge-cases
2021-04-26 10:11:24 -07:00
Ryan Houdek
7d5157b602
Merge pull request #983 from FEX-Emu/skmp/faster-l1
...
LookupCache: Add new entries to L1C
2021-04-26 10:10:51 -07:00
Ryan Houdek
e9a32da997
Merge pull request #986 from FEX-Emu/skmp/fix-20.04-build
...
Deps: Require xxhash 0.7.3, ubuntu 20.04 ships with that version
2021-04-26 10:05:35 -07:00
Stefanos Kornilios Mitsis Poiitidis
b3564a4a48
IR: Fix RIP relocation edge-cases
2021-04-26 19:20:01 +03:00
Stefanos Kornilios Mitsis Poiitidis
2294419353
Deps: Require xxhash 0.7.3, ubuntu 20.04 ships with that version
2021-04-26 19:07:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
df8b78b327
Dispatcher: Use Also lookup L1C when dispatching interpreter
2021-04-26 19:06:11 +03:00
Stefanos Kornilios Mitsis Poiitidis
2ea6a2a141
LookupCache: Fix L1C to actually cache entries
2021-04-26 18:38:03 +03:00
Ryan Houdek
db776fae4e
Merge pull request #985 from FEX-Emu/skmp/rip-relative-compilation
...
IR: Remove Entry from OP_HEADER, pass as parameter to CompileCode
2021-04-25 18:27:37 -07:00
Stefanos Kornilios Mitsis Poiitidis
b45b7c3441
IR: Remove Entry from OP_HEADER, pass as parameter to CompileCode
2021-04-25 13:15:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
7805552edb
LookupCache: Add new entries to L1C
2021-04-25 13:03:43 +03:00
Ryan Houdek
520dfd7edf
Adds Long Divide removal pass
...
If the long divides don't have anything in the upper bits then they can be optimized away.
Teeworlds, SuperTuxKart, and RRootage were between 50%-55% getting removed
2021-04-24 23:10:59 -07:00
Stefanos Kornilios Mitsis Poiitidis
60671ee6cb
Merge pull request #975 from Sonicadvance1/use_xxhash
...
Switch from fasthash64 to xxhash's XXH3
2021-04-23 09:49:06 +03:00
Stefanos Kornilios Mitsis Poiitidis
6635765ea9
Merge pull request #972 from Sonicadvance1/naked_mman
...
Naked mman usage removal
2021-04-22 09:47:41 +03:00
Stefanos Kornilios Mitsis Poiitidis
3e4ff23ab6
Merge pull request #977 from Sonicadvance1/fix_relative_elf
...
Fixes ELFCodeLoader2 loading relative ELF files
2021-04-22 09:40:08 +03:00
Ryan Houdek
93ed411899
Fixes ELFCodeLoader2 loading relative ELF files
2021-04-20 01:58:37 -07:00
Ryan Houdek
0b0db08ebf
Switch from fasthash64 to xxhash's XXH3
...
Fixes #797
2021-04-18 18:13:27 -07:00
Stefanos Kornilios Mitsis Poiitidis
3419f40c00
Merge pull request #971 from Sonicadvance1/template_specialization
...
Declare missing template specialization for GetListIfExists
2021-04-19 00:03:25 +03:00