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