Commit Graph
9533 Commits
Author SHA1 Message Date
Ryan Houdek d698feae53 Update ELFLoader CodeLoader to support unified memory and auxp values
auxp is required for most applications
2020-03-06 09:08:50 +02:00
Ryan Houdek c32d7b84bc Make environment variable setting less vocal 2020-03-06 09:08:47 +02:00
Ryan Houdek 44593feed0 Ensure if ENABLE_LTO is set to false to disable LTO 2020-03-06 09:08:47 +02:00
Scott Mansell 4abe6a9165 asm tests for fld/fadd 2020-03-06 09:08:47 +02:00
Scott Mansell d4cffa5354 Add x87/MMX registers to test harness 2020-03-06 09:08:47 +02:00
Ryan Houdek 3a460b4bf0 Support setting the library rootfs in the ELFLoader 2020-03-06 09:08:46 +02:00
Ryan Houdek 13d681558e Adds accurate STD output option to ELFLoader 2020-03-06 09:08:44 +02:00
Scott Mansell b2b501518a Fix some unit tests 2020-03-06 09:08:35 +02:00
Scott Mansell 149ab3f6f7 TestHarnessRunner: Abuse CompareStates to verify
Bit of a hack, but it gets verification against the expected values.
2020-03-06 09:08:35 +02:00
Scott Mansell 213b739f12 Add GdbServer intergraton 2020-03-06 09:08:34 +02:00
Scott Mansell 81b9810f36 FEXCore: Refactor context start/pause/step interface 2020-03-06 09:08:28 +02:00
Ryan Houdek 1151abbb64 Adds MOVHPD unit test 2020-03-06 09:08:25 +02:00
Ryan Houdek f2c1feb61b Adds a couple of STOSQ unit tests
These were causing problems, might as well as make a unit test.
2020-03-06 09:08:25 +02:00
Ryan Houdek c0b3a94e4f Fixes up stack space for argv and envp
These were messy and we were previously losing a page for random
"redzone" which doesn't matter.
We only needed 16bytes more for some additional padding that was needed
for something
2020-03-06 09:08:25 +02:00
Scott Mansell 3300587e6a Fix ENV pointers overwriting args 2020-03-06 09:08:25 +02:00
Ryan Houdek d5b703aaea Adds PSLLDQ and PSRLDQ unit test 2020-03-06 09:08:25 +02:00
Ryan Houdek 1025ff75be Makes unit tests running a bit more complex
Runs the unit tests with a variety of options to try and catch common
problems that crop up.
2020-03-06 09:08:25 +02:00
Ryan Houdek d57af761de Fixes a couple mistakes in the unit tests 2020-03-06 09:08:25 +02:00
Ryan Houdek 99dc73441c Update project externals 2020-03-06 09:08:23 +02:00
Ryan Houdek 369686c992 Initial Commit 2020-03-06 09:08:13 +02:00
Stefanos Kornilios Mitsis Poiitidis e9ea4cbb76 FEXCore: Move to Externals/FEXCore 2020-03-06 09:07:37 +02:00
Ryan Houdek f034cef9fc Fixes FindTrailingZeros IR interpreter
Was generating undefined behaviour when input was zero
Found via unit tests when testing TZCNT with zero input
2020-03-06 07:56:19 +02:00
Ryan Houdek 157f66bfc0 Fixes MOVSS op bug found by unit tests
It had failed to zext to 128bits when loading from memory
2020-03-06 07:56:19 +02:00
Ryan Houdek 9c363fb317 Various fixes that unit tests have found
- Need to distinguish between unsigned and signed saturating ops
- Fixes vector splat
- Fixes VUMULL/VSMULL num element calculation
- Fixes undefined behaviour in a couple of vector shift ops
- Implements VSSHR
- Fixes VExtr calculating offset correctly
- Fixes VInsGPR calculating offset correctly
- Fixes PSRA (not immediate) x86 ops
- Fixes scalar vector unary ops to correctly insert lower bits
- Fixes conversion instructions correctly inserting lower bits
- Fixes PINSRW using the wrong element size
2020-03-06 07:56:19 +02:00
Ryan Houdek 9b21caa647 Adds support for CMPPD's NEQ comparison 2020-03-06 07:56:19 +02:00
Ryan Houdek 1a7eddb49d Fixes a bug in MOVLPD 2020-03-06 07:56:19 +02:00
Ryan Houdek d2a1c41563 Fixes the missed BTC op instruction from the previous BT* changes 2020-03-06 07:56:19 +02:00
Ryan Houdek cd5e34e8cc Fixes a bunch of various bugs in the x86 translation
Removes a bunch of MMX instructions accidently exposed in the
opdispatcher tables.
2020-03-06 07:56:19 +02:00
Ryan Houdek c721810516 Adds some new IR ops to the interpreter 2020-03-06 07:56:18 +02:00
Ryan Houdek 20d04b0216 Fixes some undefined behaviour with shifts in the interpreter 2020-03-06 07:56:18 +02:00
Ryan Houdek 0d870147ec Removes syscall's FD remapper
Required because we can't track all FD remapping
2020-03-06 07:56:18 +02:00
Ryan Houdek b0df2e4f18 Fixes missing MOVMSKOp class function definition 2020-03-06 07:56:18 +02:00
Ryan Houdek ba6c542a56 Adds support for MOVMSKPS/MOVMSKPD 2020-03-06 07:56:18 +02:00
Ryan Houdek c5dac3eff7 Fixes CMPSD x86table flag for size calculation 2020-03-06 07:56:18 +02:00
Ryan Houdek 7909b1f277 Adds UNPCKHPS instruction 2020-03-06 07:56:18 +02:00
Ryan Houdek e67f141c29 Adds packed float comparison x86 instructions CMPPS/CMPPD 2020-03-06 07:56:18 +02:00
Ryan Houdek 9870547d50 Fixes 32bit element selection for SHUFP 2020-03-06 07:56:18 +02:00
Ryan Houdek cde683eff4 Adds support for ancillary data in sendmsg 2020-03-06 07:56:18 +02:00
Ryan Houdek f645bd7901 Adds a few new IR ops
Fixes REP CMPS. It needs to also break when ZF == 0
Fixes REPNE SCAS. It shouldn't set ZF to 0 on entry. Could result in erroneous flag setting.
Implements a few new x86 ops
2020-03-06 07:56:18 +02:00
Ryan Houdek 75f7bc0abd Fixes FindMSB op for the interpreter for 8bit/16bit types
Was zexting to 32bit and thing doing a findMSB which was wrong
2020-03-06 07:56:17 +02:00
Ryan Houdek ec5f3a6854 Fixes LEA instruction
LEA changes behaviour based on the ordering of the prefixes on the
instruction

eg:
66 48 8d 3d ffffffff: lea rdi, [rip - 1]
48 66 8d 3d ffffffff: lea di, [rip - 1]

So we need to know the order of a few of the prefixes.
In the future this should probably be switched to a three deep stack to
have the ordering but for now this'll do
2020-03-06 07:56:17 +02:00
Ryan Houdek 64e863a5a0 Adds a few more instructions to the OpcodeDispatcher 2020-03-06 07:56:17 +02:00
Ryan Houdek e854112927 Implements Unified memory in the x86 JIT 2020-03-06 07:56:17 +02:00
Ryan Houdek c336a09641 Adds new IR ops to interpreter and x86 JIT 2020-03-06 07:56:17 +02:00
Ryan Houdek 3bad1eafbc Adds new IR ops to the JSON 2020-03-06 07:56:17 +02:00
Ryan Houdek 7359e44952 Fixes FCVTZ{U,S} Destination size 2020-03-06 07:56:17 +02:00
Ryan Houdek fe170846f4 Fixes LEA X86Table flag
Default operating size was wrong
2020-03-06 07:56:17 +02:00
Ryan Houdek ae2689d9e2 Fleshes out a couple x87 instruction table ops 2020-03-06 07:56:17 +02:00
Ryan Houdek 0dcd4bc0b3 Removes some CPUID feature flags
We don't support AVX512, XOP, or FMA4
2020-03-06 07:56:17 +02:00
Ryan Houdek 6f5b9358e2 Syscall additions and fixes
Adds unified memory support for most things
Fixes a couple of bugs
2020-03-06 07:56:17 +02:00