Commit Graph
9533 Commits
Author SHA1 Message Date
Ryan Houdek 2acf22f15b Fixes cvtps2dq instruction
This must of have been a copy and paste error, I didn't even have this
instruction on my list of implemented instructions.
It definitely isn't converting to a GPR
2020-06-15 20:25:13 -07:00
Ryan Houdek ea85c70daf Remove a debug log from the AArch64 JIT
These keep sneaking back in when I'm testing
2020-06-14 14:35:53 -07:00
Stefanos Kornilios Mitsis Poiitidis 77b63760be Merge pull request #235 from Sonicadvance1/32bit_remove_64bit_size
Removes 64bit size from frontend when in 32bit mode
2020-06-14 03:15:48 +03:00
Stefanos Kornilios Mitsis Poiitidis 6c18e11600 Merge pull request #234 from Sonicadvance1/config_fixes
Config fixes
2020-06-14 03:14:52 +03:00
Ryan Houdek fc777887f4 Supports 32bit operating mode in the OpDispatcher
Pretty basic for the most part, just changes default operating mode for
most everything from 64bit to 32bit.
2020-06-12 19:27:43 -07:00
Ryan Houdek 3ff179c39c Adds unit test for mov to and from segment register 2020-06-12 18:50:24 -07:00
Ryan Houdek c2bd346297 Supports segment register moving
32bit apps are setting GS register that I saw.
64Bit applications can also technically use these instructions but it
has some major limitation that causes applications to never use them
2020-06-12 18:49:29 -07:00
Ryan Houdek 5b9de1675f Removes 64bit size from frontend when in 32bit mode
64bit mode doesn't exist when we are operating in 32bit mode, so this
needs to be disabled.
This forces a fallback to a 32bit size for those ops
2020-06-12 15:19:40 -07:00
Ryan Houdek 826464d894 Ensures that Config.json stores to ${CONFIG}/Config.json
Just ensures that it gets stored in the correct XDG or ~/ config
directories.
If these don't exist then it'll get dumped in to PWD or cwdir, whichever
is available as fallback
2020-06-12 15:08:16 -07:00
Ryan Houdek 7bfe127fcb Ensures the core saves the entry cache to the correct folder
We should store this in XDG_CACHE_HOME, not DATA_HOME.
Also fallback the HOME and PWD directories correctly
2020-06-12 15:08:16 -07:00
Ryan Houdek cf546268ea Ensures that Unified Memory is enabled by default 2020-06-12 15:08:16 -07:00
Ryan Houdek 53c46312ff Implements atomic ops for ARMv8.0 devices
These can only be implemented as acquire/release exclusive loops on
ARMv8.0 so they end up looking pretty disgusting.
This is more for compatibility for testing than anything. I'm not
expecting ANY ARMv8.0 device to get decent performance
2020-06-12 15:06:36 -07:00
Stefanos Kornilios Mitsis Poiitidis 6fbf0d8fc7 Merge pull request #232 from Sonicadvance1/32bit_prefix
More 32bit work
2020-06-12 23:41:02 +03:00
Ryan Houdek c7f2aa1ddd Adds a couple basic 32bit x86 unit tests
Super basic, just to show them working
2020-06-10 19:44:27 -07:00
Ryan Houdek 263ceb7086 Cleans up ASM unit test file generation
This allows the generated files to maintain the same folder structure as
how they exist in the source folder.
Resolves the issue that a file in a different folder could potentially
conflict with another in a different folder but have the same name.
This is an easier mental model when pulling unit tests in to a
disassembler for verifying codegen.
2020-06-10 19:44:27 -07:00
Ryan Houdek b262b59916 Fixes up prefix handling for 32bit
Moves REX to a 64bit only table entry. This allows the missing INC/DEC
instructions to exist in 32bit space
2020-06-10 16:49:06 -07:00
Stefanos Kornilios Mitsis Poiitidis 8ca73a63cc Merge pull request #174 from Sonicadvance1/enter_inst
Enter inst
2020-06-11 00:41:18 +03:00
Stefanos Kornilios Mitsis Poiitidis 4953a620d5 Merge pull request #230 from Sonicadvance1/virtual_cores
Adds new FEX config for telling the guest how many CPU cores it can have
2020-06-08 19:34:06 +03:00
Stefanos Kornilios Mitsis Poiitidis 908b2c108b Merge pull request #229 from Sonicadvance1/fix_dce
Fixes a typo in the HasSideEffects json generator
2020-06-08 19:32:54 +03:00
Stefanos Kornilios Mitsis Poiitidis f9b4ec4bb0 Merge pull request #228 from Sonicadvance1/fix_bt_ops
Fixes a case of the BT ops failing to test the correct bit
2020-06-08 19:31:29 +03:00
Stefanos Kornilios Mitsis Poiitidis 6d0be61826 Merge pull request #231 from Sonicadvance1/create_ir_folder
Ensures IR build folder is created
2020-06-08 14:57:07 +03:00
Ryan Houdek 1c56b489b9 Implements unit test for enter instruction 2020-06-06 11:52:51 -07:00
Ryan Houdek 97070ea548 Implements ENTER instruction 2020-06-06 11:52:51 -07:00
Ryan Houdek 0ae5563d58 Ensures IR build folder is created
This was a cmake job race, depending on what was trying to run in the IR
folder first, the IR folder in the binary directory may not have been
generated before our scripts tried to be run
2020-06-06 04:54:25 -07:00
Ryan Houdek 7302ad1996 Adds new FEX config for telling the guest how many CPU cores it can have
This is just a virtual number that the guest can query through the
various means. Will affect mesa with how many helper threads it
generates at the very least
2020-06-04 00:03:41 -07:00
Ryan Houdek 8cf1c52b28 Fixes a typo in the HasSideEffects json generator
This was forcing every op to determine it had side effects, so DCE could
never actually remove any operations.
This fixes the typo which means each op declares side effects correctly
and DCE works again
2020-06-03 23:55:33 -07:00
Ryan Houdek a426c0641e Adds new unit tests to ensure bit offset issue doesn't happen 2020-06-03 23:52:54 -07:00
Ryan Houdek b25f1c4e3b Fixes a case of the BT ops failing to test the correct bit
When the `BT mem` operation was accessing memory where the bit offset
wasn't a multiple of the access size, then we were dividing the offset
by bytes and accessing bits at `mem[byteOffset] &= (BitOffset)`.
BitOffset wasn't adjusted to compensate for the access size being added
to the address.
Causing a mismatch of testing the wrong bits. Unit tests didn't capture
this.
Trying to run glxgears on i965/iris showed extensive corruption because
of it though.
2020-06-03 23:48:28 -07:00
Ryan Houdek b287d9f903 Merge pull request #225 from FEX-Emu/skmp/add-fchdir
syscalls/x64: Add fchdir
2020-06-03 19:43:56 -07:00
Stefanos Kornilios Mitsis Poiitidis 2c8fccdcf2 syscalls/x64: Add fchdir 2020-06-03 16:01:06 +03:00
Ryan Houdek 7717425201 Merge pull request #224 from FEX-Emu/skmp/add-accept4
x64/syscalls: Add accept, accept4
2020-05-31 14:40:29 -07:00
Ryan Houdek efa26b3bf4 Merge pull request #223 from FEX-Emu/skmp/unhandled-syscall-show-number
x64/syscalls: Change HandleSyscall/Unimplemented Syscall to include syscall number
2020-05-31 14:39:47 -07:00
Ryan Houdek 68e16dc839 Merge pull request #222 from FEX-Emu/skmp/add-pselect6
syscalls/x64: Add pselect6
2020-05-31 14:39:14 -07:00
Stefanos Kornilios Mitsis Poiitidis 63ea0358bd syscalls/x64: Add pselect6 2020-05-31 15:31:16 +03:00
Stefanos Kornilios Mitsis Poiitidis 1f243f14be x64/syscalls: Add accept, accept4 2020-05-31 15:28:23 +03:00
Stefanos Kornilios Mitsis Poiitidis c200952cc6 x64/syscalls: Change HandleSyscall/Unimplemented Syscall to include syscall number 2020-05-31 14:14:10 +03:00
Stefanos Kornilios Mitsis Poiitidis a47f9d48f5 Merge pull request #221 from Sonicadvance1/fix_config_zero_size
Fixes a crash that can occur when the config exists but has nothing
2020-05-31 12:02:55 +03:00
Stefanos Kornilios Mitsis Poiitidis f1173a3bca Merge pull request #218 from Sonicadvance1/implements_lods
Implements LODS instruction
2020-05-31 12:02:11 +03:00
Stefanos Kornilios Mitsis Poiitidis a659024547 Merge pull request #220 from Sonicadvance1/psadbw
Implements psadbw for MMX and SSE2
2020-05-31 12:00:36 +03:00
Stefanos Kornilios Mitsis Poiitidis 3b9204341c Merge pull request #219 from Sonicadvance1/scas_unittests
Implements SCAS unit tests
2020-05-31 11:42:05 +03:00
Stefanos Kornilios Mitsis Poiitidis 5f7b3883f4 Merge pull request #217 from Sonicadvance1/llvm_native_target
Forces LLVM backend to use the native CPU architecture
2020-05-31 11:28:57 +03:00
Ryan Houdek ceab504211 Implements unit tests for psadbw 2020-05-31 03:22:11 +01:00
Ryan Houdek a147e5eca1 Implements psadbw for MMX and SSE2
Saw this when running Freedreno on x86-64
2020-05-31 03:22:11 +01:00
Ryan Houdek 3dae3f4b84 Fixes bug that cropped up in cvtpi2ps from previous changes 2020-05-31 03:22:11 +01:00
Ryan Houdek 2ba797a992 Implements new IR ops in the CPU backends 2020-05-31 03:22:11 +01:00
Ryan Houdek 03b885816e Fixes a crash that can occur when the config exists but has nothing
Common when I'm testing and wiping the config away
2020-05-30 18:56:39 -07:00
Ryan Houdek 1541b29662 Updates vixl to latest master 2020-05-30 18:50:32 -07:00
Ryan Houdek 2f1d7f70a2 Adds new IR ops that PSADBW will need 2020-05-30 18:49:09 -07:00
Ryan Houdek 4db38f389a Implements SCAS unit tests 2020-05-29 23:38:27 -07:00
Ryan Houdek 6cf5c00fe9 Implements LODS unit tests 2020-05-29 23:37:27 -07:00