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