Stefanos Kornilios Misis Poiitidis
0afb3caaed
Refactors: Move CodeBuffers to CPUBackend, SignalHandlerRefCounter to CpuStateFrame, Arm64 Relocation to ARM64Jit
2022-06-10 10:39:42 +03:00
lioncash
2c5dc13201
Tests/IRLoader: Silence missing override warning
2022-06-08 10:41:28 -04:00
Ryan Houdek
87b3d50899
Linux: Fixes open syscall emulated path handling
...
open is rarely used compared to openat and openat2, so this has been
just missed but nothing really got upset about it.
Fixes Proton Experimental while running under pressure-vessel.
2022-06-07 17:27:25 -07:00
Stefanos Kornilios Misis Poiitidis
6a428043f6
TSO: Add auto migration optimisation for applications that don't need TSO
2022-06-06 16:51:32 +03:00
Stefanos Kornilios Mitsis Poiitidis
c6153d6a52
Merge pull request #1747 from Sonicadvance1/struct_verifier_fixes
...
Struct verifier fixes and reenable
2022-06-04 13:46:30 +03:00
Ryan Houdek
015200f511
StructVerifier: Reenable DRM testing
2022-06-03 19:12:33 -07:00
Ryan Houdek
92f48819b6
IoctlEmulation: Fix DRM includes
...
These were being overridden by system includes.
2022-06-03 19:12:33 -07:00
Stefanos Kornilios Misis Poiitidis
ee02b1ca51
Review feedback
2022-06-03 14:15:22 +03:00
Stefanos Kornilios Misis Poiitidis
33845a3112
Mtrack: Remove race conditions around concurrent invalidation and compilation
2022-06-03 12:41:38 +03:00
Stefanos Kornilios Misis Poiitidis
096ed29b5e
Mtrack/x86: Track shmat, shmdt via ipc syscall as well
2022-06-03 12:41:32 +03:00
Ryan Houdek
46919979ce
StructVerifier: Ensure drm include is in place
...
drm testing disabled while investigations occur
2022-06-02 04:46:00 -07:00
Ryan Houdek
c9319a768f
Config: Add the ability to inject command line arguments
...
Simple enough since we control the full emulation
2022-05-31 17:11:42 -07:00
Ryan Houdek
a2d0b7d7c4
Linux: Expose v5.18 host to guest
2022-05-23 11:00:16 -07:00
Ryan Houdek
97a8fa77bc
Ioctl: Update drm msm for v5.18
...
Fixes #1602
2022-05-23 10:59:29 -07:00
The Hypnotron
17e5d73e64
Fix dangling curl hyphen
...
Fixes a regression in fa87c73b9ee60a334eace2cdc3097725cbaf5b88; curl complains "curl: option -: is unknown" when trying to fetch a RootFS without this.
2022-05-21 14:12:48 -04:00
Ryan Houdek
24ad208778
FEXLogServer: Stop improper use of std::erase_if
...
std::erase_if shouldn't allow you to modify the object passed in to the
predicate.
libstdc++ hasn't always enforced this but now it does with libstdc++12
2022-05-20 03:47:24 -07:00
Ryan Houdek
fa87c73b9e
Merge pull request #1719 from Sonicadvance1/fex_rootfs_fetcher_no_rety
...
FEXRootFSFetcher: Don't continue download
2022-05-20 03:13:38 -07:00
Ryan Houdek
0ed96544e1
Merge pull request #1721 from Sonicadvance1/fix_clone3_stack
...
Syscalls: Fixes clone3 stack pointer
2022-05-20 02:46:05 -07:00
Ryan Houdek
d28ccc59ac
Syscalls: Fixes clone3 stack pointer
...
clone2 stack pointer passed in points to the highest address for the
stack.
clone3 switches this around and gives us a base pointer and a size.
glibc started using clone3 for its thread cloning which finally caught
this bug. Necessary to run any application under the Ubuntu 22.04 rootfs
since that uses a new enough glibc to encounter this.
2022-05-19 22:51:17 -07:00
Ryan Houdek
eaa75c1ed2
FEXRootFSFetcher: Don't continue download
...
While our CDN supports download continue, the backblaze storage backing
does not.
2022-05-19 22:44:22 -07:00
Stefanos Kornilios Misis Poiitidis
a284adcd19
SMC: Add mprotect based tracking, --smc=mtrack, make default
2022-05-16 15:51:09 +03:00
Ryan Houdek
c79d79e08b
TestHarnessRunner: Use guest mapper for test harness files
...
This will allow it to get picked up for named region handling. Thus
ending up in the code caching for testing.
2022-05-14 19:08:32 -07:00
Stefanos Kornilios Misis Poiitidis
a6a816fb38
CMake: C/C++ flags for defined singed overflow warping
2022-05-10 17:14:17 +03:00
Stefanos Kornilios Mitsis Poiitidis
b9d878b1f4
Merge pull request #1672 from FEX-Emu/skmp/add-guest-mmap-munmap
...
Syscalls/Linux: Add guest[Mmap/Munmap]
2022-05-09 12:55:40 +03:00
Parallels
45a9a83c79
Loaders: Use bind_front instead of lambdas to bind GuestM(un)map
2022-05-09 12:39:48 +03:00
Parallels
560cfc757c
HarnessHelper: Allocations need to be MAP_FIXED
2022-05-09 11:57:19 +03:00
Stefanos Kornilios Misis Poiitidis
e92f51e415
Syscalls/Linux: Add GuestMmap & GuestMunmap, update code to use it
2022-05-09 11:57:08 +03:00
Ryan Houdek
6e9e5b3bd6
Config: Adds code object cache config option
...
This will be used soon
2022-05-06 10:26:44 -07:00
Ryan Houdek
d1ac406895
EmulatedFiles: Fixes temporary file flags
...
mode and flags were being combined incorrectly.
2022-05-05 21:50:34 -07:00
Stefanos Kornilios Misis Poiitidis
efb42c1ad1
Syscalls/Linux: Refactor guest mman tracking
2022-05-03 15:26:32 +03:00
Stefanos Kornilios Mitsis Poiitidis
d8109880f4
Merge pull request #1670 from FEX-Emu/skmp/processwide-code-invalidations
...
Core: context-wide guest code invalidations
2022-05-03 15:23:10 +03:00
Stefanos Kornilios Misis Poiitidis
b5a4e5920d
Core: Rename FlushCodeRange to InvalidateGuestCodeRange
2022-05-02 01:49:54 +03:00
Stefanos Kornilios Misis Poiitidis
94d2ed85a7
Core: Add support for process-wide code invalidation, rename IR invalidate op to do thread specific invalidation
2022-05-02 01:49:49 +03:00
Stefanos Kornilios Misis Poiitidis
df78f5d50e
FEXLoader: Fix create_directories check for aotir .path file writting
2022-05-02 01:25:02 +03:00
Stefanos Kornilios Misis Poiitidis
a888da436b
Linux/MemAllocator32Bit: Add missing lock to shmdt, fix error returns
2022-05-02 01:00:53 +03:00
Ryan Houdek
753d0ede6c
FEXCore: Reclaimable thread pool allocator
...
Creates a pool allocator for OpcodeDispatcher and IRCompaction that
shares memory allocations between threads in a pool and supports
reclaiming stale allocations from participating threads.
A thread will use a heuristic to keep its claimed memory allocation
around if it is allocating a lot of code. If it slows down then it will
start putting the memory allocation back in to the thread pool.
Additionally if the allocation has been "disowned" and gone to sleep
while still retaining the allocation, then another thread can inspect
these stale allocations and reclaim it from the idling thread. Saving
further memory.
This needs some more work and cleanup but this is an interesting concept
that saves a decent amount of memory even in a basic test.
Causes teeworlds' title screen to go from 754MB to 599MB in my simple
test. 79.4% the memory usage is a good start.
2022-04-26 10:01:56 -07:00
Ryan Houdek
f6a74a710d
FEXBash: Set PS1 to make it more obvious when running under FEX
...
This requires us to pass in --no-rc to bash since otherwise PS1 gets
overwritten by shell variables and nothing happens.
Which this is fine for the common use case of just wanting to run a
basic bash script under emulation.
2022-04-25 11:59:04 -07:00
Ryan Houdek
72e82d0304
Linux: Fixes 32-bit mmap
...
This went unnoticed for so long since most applications are new enough
to use mmap2 instead of mmap.
This was just completely broken.
Fixes #1630
2022-04-24 10:56:56 -07:00
Ryan Houdek
128a24d699
Linux: Updates supported guest Linux version to v5.17
2022-04-23 11:59:18 -07:00
Ryan Houdek
cd94a8f0ac
Linux: Adds support for new v5.17 virtio IOCTL
2022-04-23 11:58:56 -07:00
Ryan Houdek
df5e0e5df9
Linux: Adds support for new v5.17 syscall
2022-04-23 11:58:38 -07:00
Ryan Houdek
458bbf4ef7
Linux: Updates syscalls for v5.17
2022-04-23 11:57:37 -07:00
Ryan Houdek
42a6320935
Merge pull request #1585 from CallumDev/x87f64
...
Emulate reduced-precision X87 with 64-bit host FPU ops
2022-04-21 09:22:03 -07:00
CallumDev
3f89e46d66
Add X87ReducedPrecision to FEXConfig
2022-04-22 01:36:56 +09:30
Stefanos Kornilios Misis Poiitidis
e87e9d269a
TestHarnessRunner: Flush log on asserts
2022-03-21 21:32:35 +02:00
Ryan Houdek
68f32d85c9
CodeLoader: Expose base ELF loaded offset
...
Useful for gdb
2022-03-09 19:07:45 -08:00
Ryan Houdek
2aa77e85de
LinuxSyscalls: Expose CodeLoader through syscall interface
2022-03-09 19:07:45 -08:00
Ryan Houdek
91665fdf0e
Merge pull request #1610 from wannacu/main
...
FileManager: Fix realpath failed on debian buster
2022-03-09 18:58:52 -08:00
wannacu
898873e9e3
FileManager: Fix realpath failed on debian buster
...
This happend on debian buster when run realpath(i386) on arm64 host.
2022-03-08 16:42:05 +08:00
Ryan Houdek
52292e5f7e
Linux: Fixes MAP_32BIT supported range
...
I accidentally committed a 32-bit range that was significantly smaller
than what it should be.
While the minimal range worked for simple cases, it didn't work for
anything complex.
Give it the full range it needs.
Fixes #1600
2022-03-06 17:46:17 -08:00