Commit Graph

5472 Commits

Author SHA1 Message Date
Sandy Carter 1c10e7654f [cpu] Test cpu-test on travis 2019-08-24 22:46:54 +02:00
uytvbn 0e54381d4c [Linux] Implement virtual memory allocation 2019-08-24 22:46:54 +02:00
Sandy Carter b3f5b6ecf0 [cpu] Add linux registers to CallExtern 2019-08-24 22:46:54 +02:00
Sandy Carter 74d30f8348 [cpu] Use dynamic cast for downcasting pointers 2019-08-24 22:46:54 +02:00
Sandy Carter 0cf34743cc ppc linux: add comment about xmm registers 2019-08-24 22:46:54 +02:00
Sandy Carter 02dd9254b1 [travis] Enable ppc gentest and tests 2019-08-24 22:46:54 +02:00
Sandy Carter 23353173fe [Linux] Fix Processor::backend() on release
Disable inlining on backend() which causes ppc issues on clang 7 in release builds.
2019-08-24 22:46:54 +02:00
Sandy Carter 85f407f317 [Linux] Fix Value::Not on release
Disable optimization on set zero to prevent clang from vectorizing the assigment to zero which would
use different registers than expected.
2019-08-24 22:46:54 +02:00
Sandy Carter ee7f68a85f [Linux] Fix Value::set_zero() on release
Disable optimization on set zero to prevent clang from vectorizing the
assigment to zero which would use different registers than expected.
With -O0: RAX. With -O1: RDI.
2019-08-24 22:46:54 +02:00
uytvbn 8817975912 [Linux] Fix Value::MulHi 2019-08-24 22:46:54 +02:00
uytvbn c804b0dff9 [Linux] Force passing XMM values by pointer 2019-08-24 22:46:54 +02:00
uytvbn 41b0aa9ffd [Linux] Implement thunk generation 2019-08-24 22:46:53 +02:00
Sandy Carter c97c4dbeac [string] Remove reuse of va_list in AppendVarargs
va_list are not guarenteed to maintain their values after being used.
With clang on Linux, args is undefined after fetching length and will print
"(null)".
Copy args into another va_list before getting length to prevent this.
Add tests.
2019-08-24 22:45:06 +02:00
Sandy Carter 6c58b3b13d [string] Add base string tests 2019-08-24 22:45:06 +02:00
uytvbn 60fea32f52 [Linux] Fix off-by-one error in bit_scan_forward 2019-08-24 22:45:06 +02:00
uytvbn 7186af388a [Linux] Implement exception handler 2019-08-24 22:45:06 +02:00
uytvbn 8e92a4b55b [Linux] Fix binutils path for gentests 2019-08-24 22:45:06 +02:00
Triang3l a422166123 [Kernel] Fix MmAllocatePhysicalMemoryEx range base 2019-08-24 19:23:31 +03:00
Triang3l 7e6bf8022f [Memory] Refactor GetPhysicalAddress and use it for XMA, resolve #1448 2019-08-24 17:42:06 +03: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 16bbfdbb3c Fix handling of paths to Python with spaces in xb.bat. 2019-08-23 10:40:21 -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
emoose f46e3c7e39 [Kernel/VFS] Ensure vfs::Entry is up-to-date before retrieving file information
Games like Forza use NtQueryInformationFile to get the size of the file, to make sure that there's enough room inside it to write data.

Previously, updating the file size (via SetInfoFile(EndOfFile) or WriteFile) wouldn't update the vfs::Entry size field, which NtQueryInfo uses to return the size of the file.

This resulted in the game thinking that the file was smaller than it actually is, and trying to correct that by using SetInfoFile(EndOfFile), which then truncated the file and deleted important data that was written to it.
2019-08-21 02:00:57 -05:00
emoose 06cacbb9af [Kernel] Implement XeKeysObscureKey & XeKeysAesCbcUsingKey 2019-08-21 02:00:57 -05:00
emoose b22d76f0f9 [Kernel] Add XLiveBase 0x58046 stub 2019-08-21 02:00:57 -05:00
Triang3l 4731ae026b [D3D12] 3D/stacked texture layer addressing 2019-08-19 23:24:58 +03:00
gibbed f9e037f84b Suppress stderr for 'where python'/'where python3' in xb.bat. 2019-08-18 09:49:44 -05:00
gibbed 75a78c45c4 More xb.bat fixes.
- Properly check if candidate path exists.
- Quote python path when invoking.
2019-08-18 09:35:11 -05:00
Triang3l 56b168216d
Merge pull request #1441 from Triang3l/dcb-instructions
[CPU] Data cache control instructions
2019-08-18 16:43:46 +03:00
Triang3l bc4b68db45 [CPU] Data cache control instructions 2019-08-18 16:22:32 +03:00
gibbed c19dc9c7d6 Prefer vsdevcmd over vcvarsall. 2019-08-17 08:32:20 -05:00
gibbed 1ebc13df94 Oops. Call set after vsdevcmd. 2019-08-17 08:32:20 -05:00
gibbed 7b0367da5f Overhaul finding Python in xb.bat.
- Checks hardcoded paths first, then checks for results of 'where python3' and
  'where python'.
- Checks if these files and have a size larger than 0 (fixes Windows 10 issue).
2019-08-17 08:07:02 -05:00
gibbed 745d5609e6 Add hardcoded path for Python 3.7 to xb.bat Python check. 2019-08-17 08:07:02 -05:00
gibbed c3c77187bb Fix an issue in git-clang-format that exists with Python 3.4. Issue resolved on its own by Python 3.7 (unknown when it's actually resolved) but still good to have this fix. 2019-08-17 08:05:03 -05:00
Triang3l b25c50164f [APU] Physical address in XE_XMA_REG_CONTEXT_ARRAY_ADDRESS 2019-08-16 21:20:10 +03:00
Triang3l e35c609224 Revert "[APU] Temp XMA context allocation region workaround"
This reverts commit 968c337d22.
2019-08-16 21:11:55 +03:00
Triang3l 968c337d22 [APU] Temp XMA context allocation region workaround 2019-08-16 09:47:28 +03:00
Triang3l 0faafd738a [Docs] Update 0xE0000000 range info 2019-08-16 09:26:34 +03:00
Triang3l 126978d960 [Memory] Fix memory watch addresses 2019-08-16 08:49:48 +03:00
Triang3l 834ced0d63 [Memory] 0xE0000000: Fix a typo, re-enable and cleanup 2019-08-15 23:55:33 +03:00
Triang3l e862169156 [Memory] BaseHeap::TranslateRelative including host address offset 2019-08-15 00:31:21 +03:00
Triang3l 0451153760 [Memory] Temporarily disable allocation in 0xE0000000 2019-08-15 00:06:27 +03:00
gibbed 6ab7720951 [Kernel] Fix stray whitespace in license_mask definition. 2019-08-14 14:15:56 -05:00
Triang3l 003c02c640 [CPU, Memory] 0xE0000000 adjustment by @elad335 and mapping 2019-08-14 21:37:52 +03:00
illusion98 c021c7741d [Kernel] Add license mask as a config variable 2019-08-14 10:25:24 -05:00
Sandy Carter 3c3709dbe7 [CPU] Use c++ style cast 2019-08-14 06:42:30 -05:00