Commit Graph
1862 Commits
Author SHA1 Message Date
Ryan Houdek 0e11dea46f Adds kernel version check to FEXLoader
We require kernel 4.17 minimum on the host to run correctly
2021-01-15 13:55:04 -08:00
Ryan Houdek 80dfa76d48 Have SyscallHandler calculate host kernel version 2021-01-15 13:44:08 -08:00
Stefanos Kornilios Mitsis Poiitidis 21d39fed6e Merge pull request #655 from Sonicadvance1/dispatcher_in_perf
Allows JITSymbols to see central dispatcher
2021-01-15 15:26:30 +02:00
Ryan Houdek 8d81a925ee Allows JITSymbols to see central dispatcher
Will let us see in perf how much time is spent there
2021-01-14 13:05:24 -08:00
Stefanos Kornilios Mitsis Poiitidis 225a4bef2d Merge pull request #651 from Sonicadvance1/more_16bit_modrm_fixes
More 16bit addressing mode fixes
2021-01-13 22:20:25 +02:00
Ryan Houdek 6b7d508401 Adds a couple LEA unit tests for 16bit addressing mode 2021-01-13 12:02:20 -08:00
Ryan Houdek e884525434 Fixes 16bit addr offset calculation
In the case of 16bit addressing mode, the upper bits 16bits are zext
prior to result.
2021-01-13 12:02:19 -08:00
Ryan Houdek 1084ecf2d3 Fixes more 16bit modrm addressing problems
In the case of an instruction that used 16bit addressing mode. It would
calculate the amount of displacement needing to be read using a 32bit
modrm mode. It would then read calculate modrm displacement again and
read the correct number of bytes.

Leftover bytes would then be in a mismatched state which means if an
instruction was using 16bit addressing + modrm + literal at /that/ point
the number of literal bytes remaining would be calculated as a negative.

This didn't actually break things since instructions that have modrm +
literal and can safely use 16bit addressing without breaking in a 32bit
environment is impossible on Linux. Due to the inability to map a memory
range in 16bit range.
2021-01-13 12:02:19 -08:00
Ryan Houdek 96b2c6ca8b Merge pull request #637 from FEX-Emu/skmp/unsyncronized-rip
Dispatch: ExitFunction InlineConstant & unsynchronized rip
2021-01-13 10:58:58 -08:00
Stefanos Kornilios Mitsis Poiitidis f951bc969e Merge pull request #628 from Sonicadvance1/more_syscalls
Implements more syscalls
2021-01-13 20:45:02 +02:00
Stefanos Kornilios Mitsis Poiitidis 8758348dfd Dispatch: Support constant Rips, don't syncronize on context on ddisp 2021-01-13 17:26:40 +02:00
Stefanos Kornilios Mitsis Poiitidis 271d5898fb Merge pull request #642 from Sonicadvance1/fix_llvm_asan
Fixes 64bit ELF loading when LLVM ASAN is used
2021-01-13 12:55:58 +02:00
Stefanos Kornilios Mitsis Poiitidis 0c1510e763 Merge pull request #641 from Sonicadvance1/uninstall_handlers
Uninstalls both the signal delegator and logmanager handlers on shutdown
2021-01-13 12:15:10 +02:00
Stefanos Kornilios Mitsis Poiitidis 709075de58 Merge pull request #639 from Sonicadvance1/fix_32bit_program_header
Makes sure to not calculate zero sized program headers on 32bit
2021-01-13 12:08:00 +02:00
Stefanos Kornilios Mitsis Poiitidis f34f8981ab Merge pull request #638 from Sonicadvance1/irvalidation_memoryleak
Fixes a memory leak in IRValidation
2021-01-13 12:07:33 +02:00
Ryan Houdek 9869a7c576 Disables problematic gvisor test
This also manages to fail on master but for some reason not on the ARM
runners.
2021-01-12 15:04:43 -08:00
Ryan Houdek 433162004a Implements more syscalls 2021-01-12 14:50:17 -08:00
Ryan Houdek 067889c861 Merge pull request #644 from duck-37/faster-pmovmskb
Add specialized case for PMOVMSKB with vector ops
2021-01-12 12:25:50 -08:00
duck ade89bba6a XXX -> TODO 2021-01-12 15:19:45 -05:00
duck 059594cbd3 Add a quick comment for potential optimization 2021-01-12 15:15:41 -05:00
Ryan Houdek f78a342a72 Merge pull request #645 from duck-37/dcse-flags
Make DCSE aware of OP_INVALIDATEFLAGS
2021-01-12 11:50:35 -08:00
duck 501bccdd80 Faster PMOVMSKB, part 2 2021-01-12 14:06:52 -05:00
duck 49afb6bceb Faster PMOVMSKB instruction. 2021-01-12 14:06:51 -05:00
Ryan Houdek 77bbe95cd9 Merge pull request #643 from duck-37/one-byte-horizontal-add-x64
Support one-byte horizontal adds on x64
2021-01-12 11:05:55 -08:00
duck c690e65365 Make sure to only record when necessary 2021-01-12 12:49:49 -05:00
duck 4e3934eddd Make DeadContextStoreElimination aware of OP_INVALIDATEFLAGS 2021-01-12 12:47:32 -05:00
duck 464eb13b93 One-byte horizontal add support on x86-64. 2021-01-12 11:10:16 -05:00
Stefanos Kornilios Mitsis Poiitidis 80771226b8 Merge pull request #640 from Sonicadvance1/fix_test_flakes
Disables killpg tests and reenables a few tests
2021-01-11 19:32:35 +02:00
Ryan Houdek b857d6ba16 Disables killpg tests and reenables a few tests
killpg has been causing us testing problems for a while now.
As we were running more tests it was becoming more likely to hit a test
doing killpg in the background.

All of the tests run under the same process group so it is a significant
race condition to have these running.
Until we improve CI to somehow work around how killpg works, we just
need to have these disabled.
2021-01-11 09:12:02 -08:00
Ryan Houdek 43af4e26d1 Fixes 64bit ELF loading when LLVM ASAN is used
Instead of hardcoding 64bit dynamic ELF files to 0x1'0000'0000 we
instead calculate the size of the ELF in memory. Then allocate the
ELF base up front.

LLVM ASAN steals a large amount of virtual memory space that intersected
with the original hardcoded range which caused memory allocations to
fail.
2021-01-11 09:07:16 -08:00
Ryan Houdek aa3b77e4c8 Uninstalls LogManager handlers on shutdown
In case something manages to have stayed alive and tried throwing a
message, this will no longer crash.

Noticed this with the previous commit
2021-01-11 09:03:56 -08:00
Ryan Houdek f83698cb50 Uninstalls SignalDelegator signals on destruction
Tear this down earlier so if we catch a signal on shutdown then we don't
crash in the handler.

Fixes some pain around debugging shutdown crashes
2021-01-11 09:01:06 -08:00
Ryan Houdek a442489001 Makes sure to not calculate zero sized program headers on 32bit
This is the same thing as the 64bit side
2021-01-11 08:51:13 -08:00
Ryan Houdek 8d2eebd644 Fixes a memory leak in IRValidation 2021-01-11 08:47:45 -08:00
Stefanos Kornilios Mitsis Poiitidis 6542f08f27 Merge pull request #623 from Sonicadvance1/capture_fsstatat
Captures fsstatat in filesystem overlay
2021-01-11 16:20:15 +02:00
Stefanos Kornilios Mitsis Poiitidis 1e80d3527b Merge pull request #624 from Sonicadvance1/capture_osrelease
Have EmulatedFiles support osrelease file
2021-01-11 16:20:04 +02:00
Stefanos Kornilios Mitsis Poiitidis 552895b896 Merge pull request #626 from Sonicadvance1/fix_16bit_addressing
Fixes 16bit ModRM rm decoding
2021-01-11 16:19:56 +02:00
Stefanos Kornilios Mitsis Poiitidis a1ac4c711c Merge pull request #631 from duck-37/dump-ir-runner
Pass DumpIR to TestHarnessRunner
2021-01-11 11:02:03 +02:00
Stefanos Kornilios Mitsis Poiitidis d7868fd2bd Merge pull request #627 from Sonicadvance1/disable_visual_debugger
Disables visual debugger by default
2021-01-11 11:00:16 +02:00
Stefanos Kornilios Mitsis Poiitidis db71916ee4 Merge pull request #625 from Sonicadvance1/shebang_improvements
Shebang improvements
2021-01-11 10:58:51 +02:00
Stefanos Kornilios Mitsis Poiitidis ce3971098e Merge pull request #622 from Sonicadvance1/fix_execve_rootfs
Fixes execve with rootfs
2021-01-11 10:55:52 +02:00
Stefanos Kornilios Mitsis Poiitidis 50597b8fd2 Merge pull request #621 from Sonicadvance1/fix_idle_ref_count_on_fork
Ensure idle wait ref counter is 1 on fork
2021-01-11 10:55:36 +02:00
Ryan Houdek a0531c9592 Merge pull request #632 from duck-37/jcxz-fix
Fix a few branching instructions on x86-32
2021-01-11 00:40:34 -08:00
duck a63339c50d Fix JCC negative offsets as well 2021-01-11 03:34:52 -05:00
duck e610b12c97 Fix negative offset jumps on x86-32 by using 32-bit RIP 2021-01-11 03:20:25 -05:00
duck 86e6ea43a2 Fix test cases. 2021-01-10 18:31:23 -05:00
duck 4c295e6dfc Fix compilation issues, re-rename due to pre-existing variable 2021-01-10 17:54:29 -05:00
duck 3c86a55bea Size -> GPRSize for a bit more clarity 2021-01-10 17:50:22 -05:00
duck 9290e19fc5 Fix JCXZ on X86 2021-01-10 17:46:03 -05:00
duck d1b1e5ae07 pass DumpIR to TestHarnessRunner 2021-01-10 17:44:33 -05:00