Commit Graph

1088 Commits

Author SHA1 Message Date
Triang3l e348d6361e [PPC] Disable frsqrte tests in a way not breaking the rest 2020-12-12 14:00:29 +03:00
Triang3l 5c47a3a588 [x64] vcfux single rounding for 0x80000000+ 2020-12-11 21:20:13 +03:00
Triang3l d0b849aad7 [PPC] vcfsx/vcfux: Only mul if needed 2020-12-10 21:34:37 +03:00
Triang3l cb93ddf873 [PPC] vcfsx/vcfux optimization/simplification 2020-12-10 21:29:33 +03:00
Triang3l db1d6b1fef [PPC] Fix test suite name being ignored 2020-12-10 21:27:26 +03:00
gibbed 1513dd235b [Kernel] Code reentrance for guest fibers.
[Kernel] Code reentrance using exceptions for guest fibers.
2020-12-05 14:17:33 -06:00
gibbed 326220309b [x64] Handle constant in LOG2_F32/F64/V128. 2020-11-27 05:34:08 -06:00
Triang3l a73592c2ef [Memory/CPU] UWP: Support separate code execution and write memory, FromApp functions + other Windows memory fixes 2020-11-24 22:18:50 +03:00
Triang3l 86ae42919d [Memory] Close shared memory FD and properly handle its invalid value 2020-11-22 14:17:37 +03:00
Sandy Carter 49e194009b [memory linux] Properly unlink shared memory
shm_unlink(name) is the proper way to close a shared memory in linux.
Prior to this, xenia was creating and not cleaning up shared memory handle
which would accumulate in /dev/shm. shm_unlink is the proper way of doing
this.
Add filename to CloseFileMappingHandle signature.
Add simple test to open and close.
2020-11-22 13:54:00 +03:00
Sandy Carter 2c7009ca80 [memory] Move "Local\\" prefix to win impl
CreateFileMappingHandle now takes shared memory name without a prefix.
The doc of shm_open recommends not using slashes and prefixing with "/".
The prefixing has been moved to the os implementation layer.
Invocations of CreateFileMappingHandle were all using "Local\\" so these
prefixes were removed.
2020-11-22 13:54:00 +03:00
Joel Linn 06214c544a [CPU] std::sort compare: satisfy comp(a,a)==false 2020-11-14 13:30:06 -06:00
Triang3l 9428af52e4 [CPU] break_on_unimplemented_instructions cvar 2020-08-09 22:01:54 +03:00
gibbed 814728ebbe [x64] Space r/xmm regs in thunk emitter. 2020-04-13 12:57:14 -05:00
Silent f775fe8c83 [CPU] Fix off-by-one in max ordinals check 2020-04-12 21:53:46 -05:00
gibbed ed04d96e67 Avoid using '#' format spec for X hex numbers.
Avoid using '#' format spec for X (uppercase) hex numbers, as it
results in output like "0XABCDEF" instead of "0xABCDEF".
2020-04-09 11:25:08 -05:00
gibbed 8123978c49 [PPC] Disable frsqrte tests. 2020-04-07 16:09:41 -05:00
gibbed 56e5d6f11c Fix precision of test register in frsqrte test. 2020-04-07 16:09:41 -05:00
gibbed 37e576e648 [PPC] Prettier printing for failed memory checks.
[PPC] Prettier printing for failed memory checks in tests.
2020-04-07 16:09:41 -05:00
gibbed a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed 5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Margen67 b3d1c5982a [CPU] Typo fix 2020-03-07 19:39:56 -06:00
gibbed aa28430786 [x64] NAN up vmsum3fp128/vmsum4fp128.
It seems vmsum3fp128/vmsum4fp128 need to output a NAN on overflow.

Do so. Probably inefficiently.
2020-02-24 18:13:07 -06:00
gibbed a6e6f0f7bf Lint cleanup. 2020-02-22 13:29:07 -06:00
Joel Linn 64539621b4 Replace binary_function by plain function.
- Deprecated in C++11
- Removed in C++17
2020-02-20 06:44:09 -06:00
Triang3l 8ec813de82 [Memory, D3D12] Various refactoring from data provider development 2020-02-15 21:35:24 +03:00
gibbed cc47704a6b [CPU] Use reserved form of sc for imports. 2020-02-11 06:45:57 -06:00
gibbed e2346ee539 [PPC] Support basic form of sc. 2020-02-11 06:45:57 -06:00
Rados??aw Gli??ski 404aa82147 [CPU] Implemented instructions: rldclx, rldcrx 2020-02-09 16:48:50 -06:00
Gliniak 0d866aa173 [CPU] Increased maximum function count 2020-02-09 15:47:29 -06:00
Prism Tutaj 1cce25d5e7 [CPU] Change thunk layout and fix Linux thunk misalignment 2020-02-05 09:49:29 -06:00
Joel Linn 922f1f220a [CPU] Implement mftb instruction natively.
When the cvars clock_no_scaling and clock_source_raw are set, tick counts will be directly calculated in the emitted code.
2019-12-01 17:11:58 -06:00
gibbed ae15c27a24 [x64] Take advantage of StashConstantXmm. 2019-11-30 20:08:10 -06:00
gibbed 04a54cc58f [x64] Fix constant src2 in VECTOR_ROTATE_LEFT_V128. 2019-11-30 20:08:10 -06:00
gibbed f7a8c5ce7a [x64] Fix corruption of src1 in calls to EmulateVectorRotateLeft.
To mitigate this mistake in the future, implemented new
StashConstantXmm functions.
2019-11-30 20:08:10 -06:00
aerosoul bc8b629092 [Kernel] Enable XEX1 loading 2019-11-20 18:09:28 -06:00
gibbed ce78d7110e [CPU] Add locale export category. 2019-09-04 20:03:25 -05:00
gibbed e9802a9f3b [x64] Further simplification / fix buffer overrun in code cache.
- [x64] Further simplify padding of code / unwind reservation in code cache.
- [x64] Fix accidental buffer overrun caused by previous simplification.
2019-08-26 13:42:44 -05:00
gibbed c4ff8d7c58 [x64] Fix prolog/epilog sizes for emitted functions. 2019-08-25 17:02:42 -05:00
gibbed c808b59834 [x64] Simplify growable function pointer definitions. 2019-08-25 17:02:42 -05:00
gibbed 015e91140a [x64] Don't have a zeroed unwind info as the first slot. 2019-08-25 17:02:42 -05:00
gibbed 920b5c5839 [x64] Simplify padding of code / unwind reservation in code cache. 2019-08-25 17:02:42 -05:00
gibbed 3e6c2bb47c Fix up handling of positional options in cvar handling.
- Fix up handling of positional options in cvar handling so that executables
  other than app can handle them properly.
- Fix command-line arguments for xenia-vfs-dump.
2019-08-24 07:41:55 -05:00
gibbed 24321dbcd9 [x64] Fix up offset of stack alloc in prolog for unwind info.
- [x64] Track offset of stack alloc in prolog within emitted functions.
- [x64] Don't use hardcoded offset of stack alloc in prolog in generated
  unwind info.
2019-08-23 06:12:22 -05:00
gibbed 0dc4a13db3 [x64] Fix up unwind info for emitted functions.
- [x64] Track size of code within emitted functions (prolog, body, epilog).
- [x64] Don't use hardcoded prolog size in generated unwind info.
- [x64] Update URLs to MSDN documentation on UNWIND_INFO/UNWIND_CODE.
2019-08-23 06:12:22 -05:00
gibbed 918a7d4365 [x64] Reuse module handle when pulling in growable function table imports. 2019-08-23 06:12:22 -05:00
gibbed 92a85d6692 [x64] Remove outdated comment. 2019-08-23 06:12:22 -05:00
Triang3l bc4b68db45 [CPU] Data cache control instructions 2019-08-18 16:22:32 +03:00
Triang3l 003c02c640 [CPU, Memory] 0xE0000000 adjustment by @elad335 and mapping 2019-08-14 21:37:52 +03:00
Sandy Carter 3c3709dbe7 [CPU] Use c++ style cast 2019-08-14 06:42:30 -05:00
Triang3l 741b5ae2ec [Memory] Add HostToGuestVirtual and use it in a couple of places 2019-08-13 23:49:49 +03:00
Triang3l f1b9e1afce [CPU] Remove unused access violation handler variables 2019-08-13 00:06:29 +03:00
gibbed b2f62b1982 Clean up cvars (rename, recategorize). 2019-08-03 23:46:03 -05:00
Triang3l d20c2fa9da [Memory/Vulkan] Move old memory watches to the Vulkan backend 2019-08-03 21:06:59 +03:00
Triang3l 352f12f92e [D3D12] Switch from gflags to cvars 2019-08-03 16:53:23 +03:00
Jonathan Goyvaerts 81fe22f1c8 Get rid of gflags alltogether 2019-08-03 02:34:19 +02:00
Jonathan Goyvaerts c1af632562 Replace all gflag implementations with cvar implementations 2019-08-03 02:34:07 +02:00
Triang3l e071ca852c Merge branch 'master' into d3d12 2019-08-02 21:50:43 +03:00
Rick Gibbed 372928cd57
Merge pull request #1387 from Margen67/update_capstone
Update Capstone to latest stable (4.0.1).
2019-08-02 11:09:02 -05:00
Triang3l 4aceeb73c4 [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03:00
Triang3l 211f59740c Merge branch 'master' into d3d12 2019-07-21 22:02:12 +03:00
Triang3l bc2eaf9b64 [CPU] VectorAverage CPU-independent constant propagation 2019-07-21 22:01:24 +03:00
Triang3l 547345b12d Merge branch 'master' into d3d12 2019-07-21 18:31:06 +03:00
Triang3l ab664e38a0
Merge pull request #1406 from Gliniak/vsvgsb
Added support for Altivec: vavgsb
2019-07-21 18:30:03 +03:00
Triang3l 7648e45661 Merge branch 'master' into d3d12 2019-07-20 22:05:34 +03:00
Triang3l 8c00aea5ff [CPU] vpkd3d VPACK_NORMPACKED64 2019-07-20 22:04:37 +03:00
Triang3l 0488766452 Merge branch 'master' into d3d12 2019-07-19 23:13:38 +03:00
Triang3l 26c24b4726 [CPU] Move saturating add/sub to base/math.h 2019-07-19 23:12:11 +03:00
Triang3l 808d6d6025 Merge branch 'master' into d3d12 2019-07-19 08:22:59 +03:00
Triang3l 2b411f4c8b [CPU] Saturating VectorSub: fix typo in last commit 2019-07-19 08:22:30 +03:00
Triang3l 2c2808ce00 Merge branch 'master' into d3d12 2019-07-19 08:19:03 +03:00
Triang3l f14f44e729 [CPU] Saturating VectorAdd/Sub of constants without DID_SATURATE yet 2019-07-19 08:17:55 +03:00
Radosław Gliński 53eb95d33c Added support for Altivec: vavgsb
Also little size adjustments for vavgsh
2019-07-18 21:22:42 +02:00
gibbed e024cbc3f0 Merge remote-tracking branch 'origin/master' into d3d12 2019-07-18 12:33:52 -05:00
gibbed e14639c6c0 [CPU] Fix lzx_decompress misuse of xe::bit_count. Fixes #1402. 2019-07-18 12:33:16 -05:00
gibbed 1e5fa61030 Merge remote-tracking branch 'origin/master' into d3d12 2019-07-17 17:56:48 -05:00
gibbed c213f7d7a3 [CPU] Properly clear LZX window. 2019-07-17 17:53:59 -05:00
gibbed 29665ae79c [CPU] Minor LZX code cleanup. 2019-07-17 17:51:36 -05:00
emoose 71780838f0
[CPU] Use window size for LZX ref_data_size 2019-07-17 22:53:39 +01:00
Margen67 aea0d8d6b3 [third_party] Update capstone to latest stable 2019-06-24 23:15:28 -07:00
Triang3l f7ea93148a Merge branch 'master' into d3d12 2019-05-25 23:03:21 +03:00
gibbed 8afb93e2d9 [PPC] Fix trailing comment in ppc_opcode_disasm.h. 2019-05-13 00:59:40 -05:00
gibbed 9d7058ac96 [PPC] Shuffle code around to make it cleaner to modify by hand.
- [PPC] Rename ppc_opcode_lookup.cc, ppc_opcode_table.cc to have a _gen
suffix to make it more obvious about their autogenerated nature.
- [PPC] Move autogenerated code from ppc_opcode_disasm.cc to
ppc_opcode_disasm_gen.cc.
- [PPC] Update ppc-table-gen to allow for blacklisting of certain
instructions that have custom disasm code.
2019-05-13 00:49:57 -05:00
eladash 67e3b1f453 [PPC] disasm: BC formatting improvements 2019-05-13 00:27:40 -05:00
gibbed fac37e7c50 Merge branch 'master' into d3d12 2019-05-01 21:00:21 -05:00
gibbed bc0ebcb26e - Clean up log level names, no need for LOG_LEVEL_ prefix when it is an
enum class.
- Clarify usage of log level in comment.
2019-04-30 17:41:27 -05:00
gibbed c965751911 Merge remote-tracking branch 'origin/master' into d3d12 2019-04-20 02:40:46 -05:00
gibbed 1145d57007 Undo main/wWinMain changes in preparation for new method
of doing a startup AVX check.

This reverts commit 4030cff3ec.
2019-04-20 02:32:45 -05:00
Triang3l 40ffba97d9 Merge branch 'master' into d3d12 2019-04-19 15:32:10 +03:00
gibbed 4030cff3ec - Move main, wWinMain entrypoints to their own file.
- Fix startup AVX checks.
2019-04-18 16:57:42 -05:00
Triang3l ec92d46480 Merge branch 'master' into d3d12 2019-04-18 17:54:57 +03:00
gibbed 593a871c84 [x64] Use vmovaps instead of movaps in emitted function prolog/epilog. 2019-04-18 09:36:06 -05:00
Triang3l eaefc3862f Merge branch 'master' into d3d12 2019-01-24 17:46:06 +03:00
Triang3l 4ae9266f13 [CPU] Fix vpkd3d half4 component order 2019-01-24 17:45:41 +03:00
Triang3l 7d7a539aee Merge branch 'master' into d3d12 2019-01-13 19:07:06 +03:00
Triang3l 8e5a11aeb4 [CPU] Add D3DCOLOR vpkd3d test with 0xFFFFFFFF 2019-01-13 19:06:14 +03:00
Triang3l 58d9c6f33f Merge branch 'master' into d3d12 2019-01-13 17:29:44 +03:00
Triang3l 949b05f517 [CPU] Fix saturation in D3DCOLOR vpkd3d 2019-01-13 17:29:06 +03:00
Triang3l 0e9428f1bc Merge branch 'master' into d3d12 2019-01-08 01:40:08 +03:00
Triang3l ae6fd98c3c [CPU] Ignore upper bits of shift amount in srdx/srwx 2019-01-08 01:39:21 +03:00