Commit Graph

2754 Commits

Author SHA1 Message Date
Lioncash 964201f2d3 x64Emitter: Use std::tie in OpArg's operator==. Provide operator!= for symmetry 2018-03-26 18:21:21 -04:00
Lioncash 7f583b66cb x64Emitter: Clean up constructors for OpArg
Default initializes members and moves initial assignments into the
initializer list.
2018-03-26 18:21:17 -04:00
Lioncash 2861e8f868 x64Emitter: Clean up constructor and destructors of XEmitter
In-class initializes members, defaults the default constructor and
virtual destructor, and puts members in the initializer list.
2018-03-25 16:50:02 -04:00
Léo Lam 4c5efb0f3a
Merge pull request #6508 from lioncash/cmake-common
Common/CMakeLists: Migrate off add_dolphin_library
2018-03-24 09:08:20 +01:00
Lioncash f889cae8c4
Arm64Emitter: Satisfy unrelated linter issues that cropped up by modifying the cpp file 2018-03-23 19:17:44 -04:00
Lioncash 91cefe6c8a
Arm64Emitter: Make IsImmArithmetic, IsImmLogical, FPImm8ToFloat, and FPImm8FromFloat internally linked
These aren't used anywhere outside of the emitter. Centralizes them under an anonymous namespace.
2018-03-23 19:17:26 -04:00
Lioncash 2548ccda8e
Common/CMakeLists: Migrate off add_dolphin_library
Continues the migration work that was started in 3a4c3bbe01
2018-03-23 19:08:30 -04:00
Lioncash b11c237c43
Arm64Emitter: Remove unnecessary V8_UINT64_C preprocessor macro
UINT64_C is provided via <cstdint>, so we can just use that instead.
2018-03-23 13:31:48 -04:00
Lioncash 03671a5534
Arm64Emitter: Remove duplicate IsPowerOf2 function
We can just use the generified version in MathUtil.
2018-03-23 13:31:44 -04:00
Lioncash 79f40fb8d7
MathUtil: Generify IsPow2
This will allow it to also be used in the AArch64 emitter.
2018-03-23 09:50:49 -04:00
Pierre Bourdon 9628333b86 AutoUpdater: support optionally restarting Dolphin after update 2018-03-23 11:10:25 +01:00
Léo Lam 5e76f3a6d4
Merge pull request #6488 from aldelaro5/symbols-log
LOG: Add a log type for Symbols
2018-03-22 22:06:04 +01:00
aldelaro5 c54e56793a
Add a log type for Symbols and move symbols related logs to it
This fix the awkwardness of having the symbols detection, parsing and loading related logs be in OS HLE while they don't have anything to do with that.
2018-03-22 14:57:28 -04:00
Pierre Bourdon fe600ab0ed
Merge pull request #6146 from HannesMann/qos-support
Netplay: Add Quality of Service (QoS) support
2018-03-21 02:46:46 +01:00
Anthony ad8c31699f
Merge pull request #6463 from delroth/auto-update
Initial implementation of the Dolphin auto-updater for Windows
2018-03-20 11:28:26 -07:00
Pierre Bourdon bc9deb7be3 HttpRequest: make curl initialization thread-safe 2018-03-20 00:36:43 +01:00
Pierre Bourdon 5498f9b7ef make_scmrev.h.js: set default auto-update track from environment 2018-03-19 00:11:55 +01:00
Lioncash 975ba4abf0 x64Emitter: Make FloatOp and NormalOp enum classes
Reduces the amount of identifiers placed in the Gen namespace internally.
2018-03-18 18:04:54 -04:00
Lioncash c22a6f4551 x64Emitter: Move FloatOp and NormalOp enums to the cpp file
These are only used internally. This also allows us to eliminate some
symbols that get dumped into the exposed Gen namespace.

By extension this also hides the Write[X] functions from OpArg's public
interface. This is only used internally by XEmitter, so they shouldn't
be usable by anything else.
2018-03-18 18:04:48 -04:00
Lioncash 7926a0c814 Use __func__ instead of __FUNCTION__ where applicable
This replaces usages of the non-standard __FUNCTION__ macro with the standard
mandated __func__ identifier.

__FUNCTION__ is a preprocessor definition that is provided as an
extension by compilers. This was the only convenient option to rely on
pre-C++11. However, C++11 and greater mandate the predefined identifier
__func__, which lets us accomplish the same thing.

The difference between the two, however, is that __func__ isn't a
preprocessor macro, it's an actual identifier that exists at function
scope. The C++17 draft standard (N4659) at section [dcl.fct.def.general]
paragraph 8 states:

"
The function-local predefined variable __func__ is defined as if a
definition of the form

static const char __func__[] = "function-name ";

had been provided, where function-name is an implementation-defined
string. It is unspecified whether such
a variable has an address distinct from that of any other object in the
program.
"

Thankfully, we don't do any macro or string concatenation with __FUNCTION__
that can't be modified to use __func__.
2018-03-16 13:41:53 -04:00
Lioncash 75f5fcdfee Assert: Remove unused parameter from DEBUG_ASSERT
This brings the macro in line with the regular ASSERT macro, which only has one
macro parameter.
2018-03-16 13:01:11 -04:00
Lioncash f44e2dc425 Assert: Wrap assertion macro bodies in do {} while (0)
Enforces the termination of the macro with a semicolon. Aside from that
requirement, behavior remains the same.
2018-03-16 12:35:23 -04:00
Lioncash 50a476c371 Assert: Uppercase assertion macros
Macros should be all upper-cased. This is also kind of a wart that's
been sticking out for quite a while now (we avoid prefixing
underscores).
2018-03-14 22:03:12 -04:00
Pierre Bourdon d72947d638
Merge pull request #6427 from JosJuice/thousandseparate-encoding
StringUtil: Fix Windows encoding in ThousandSeparate
2018-03-10 13:16:00 +01:00
JosJuice 34be8488a5 StringUtil: Fix Windows encoding in ThousandSeparate
Some locales use non-breaking spaces as separators, so getting the
encoding right is important. If DolphinWX gets a string that isn't
valid UTF-8, it flat out won't display the string.
2018-03-10 12:13:30 +01:00
Stenzek 93ab50c555 OGL: Move primitive restart enable logic to GLUtil 2018-03-10 16:11:20 +10:00
Stenzek 51a586d11a GLUtil: Encapsulate functions in a namespace 2018-03-10 16:11:19 +10:00
Hannes Mann 41682a07cb Add Quality of Service (QoS) support 2018-03-09 00:11:18 +01:00
Pierre Bourdon 9e0739f5e5 traversal: add systemd watchdog support 2018-03-08 06:10:17 +00:00
hubslave 4ae48e10e5
Include <endian.h> for byte swap macros on OpenBSD
There is code below that assumes the presence of those macros (by #undef'ing them), but none of the included headers provided them.

This fixes a build failure on OpenBSD where the undef'd macros _do_ get picked up later on in a compilation unit (through which include, I don't know), and thus shadow the Common::swap* functions.
2018-02-26 00:07:05 +02:00
Stenzek aaea515d71 GLUtil: Drop now-unused attributeless VAO helpers 2018-02-22 19:09:28 +10:00
degasus a5a0599145 CustomTexture: Drop old texture format. 2018-01-20 17:08:47 +01:00
34will 86a787bdf9 Modified StringUtil to change UTF16ToUTF8 to use a wstring_convert and codecvt_utf8<wchar_t> to convert a UTF16 wstring to a UTF8 string. 2018-01-11 21:49:25 +00:00
34will a949e98d9b Modified UTF16BEUTF8 to just convert the UTF-16 C-string into a std::u16string, and pass it into CodeToUTF8 with the 'from' parameter being "UTF-16BE", rather than manually performing the big endian to little endian encoding. 2018-01-11 19:51:19 +00:00
34will ba111959fa Modified StringUtil to use a u16string instead of a wstring in the non-win32 UTF16BEToUTR8 method. 2018-01-11 02:45:27 +00:00
Vlad Firoiu 45ac9b678d Require WINDOW_BIT if we have a window handle. 2017-12-29 23:20:16 -05:00
Vlad Firoiu eb59267196 Surfaceless egl rendering. 2017-12-29 19:35:43 -05:00
JosJuice b3b7aef09a Android: Extract Sys to a different folder than the User folder 2017-12-26 09:53:32 +01:00
JosJuice d1c1793a34 Don't expose SYSDATA_DIR in a header 2017-12-24 17:13:04 +01:00
Markus Wick 0bf24f549a
Merge pull request #6190 from JosJuice/is-trivially-copyable-vs
Remove IsTriviallyCopyable hack for VS
2017-12-19 11:15:58 +01:00
JosJuice bd5da5cfd6 Handle both the XSI and GNU versions of strerror_r
Trying to force the XSI version by undefining _GNU_SOURCE can lead
to compilation errors on some systems because of headers expecting
that _GNU_SOURCE is defined.

This commit uses define checks to detect which version we have.
I tried making an overloaded function (int and const char*) instead,
but that led to a warning about one of the variants being unused.
2017-12-18 22:09:02 +01:00
Jonathan Hamilton 8ae76a6680 Fix arm64 MOVI2R for addresses between 2gb and 4gb offset from PC
The PC offset ADRP() path takes a s32 value, but the input offset was
being tested as abs(ptr) < 0xFFFFFFFF. This caused values between
0x80000000 and 0xFFFFFFFF to incorrectly use this path, despite the
offsets not being representable in an s32.

This caused a crash in the VertexLoader on android 8.1 immediate in wind
waker (and possibly all other apps on android 8.1) as the jit and data
sections happened to be loaded 4gb apart in virtual memory, causing some
pointers to hit this
2017-12-09 13:21:58 -08:00
Leo Lam 1a9d6b99e9
Merge pull request #6237 from lioncash/gekko-disasm
GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
2017-12-08 22:50:40 +01:00
Pierre Bourdon 8a830074b6
Merge pull request #6220 from leoetlino/utf8
WX: Fix argument parsing
2017-12-07 15:16:39 +01:00
JosJuice 9d8a82e1d9 Don't use wrong encoding for paths when opening streams on Windows 2017-12-05 21:23:35 +01:00
Lioncash de82330a74 GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
These three instructions use the B field (bits 16-20 of the opcode)
to determine what the operand register is. However, the code was
using the path that uses the C field (bits 21-25).

This amends the code to use the B field (and also fixes the 64-bit PPC
opcodes, because why not?).

Fixes issue 10683.
2017-12-04 00:02:35 -05:00
Léo Lam 05c8d229af Config: Handle unknown system strings better
Currently, a simple typo in the system name will trigger an assert
message that complains about a "programming error". This is not
user friendly and misleading.

So this changes GetSystemFromName to return an std::optional, which
allows for callers to check whether the system exists and handle
failures better.
2017-11-26 18:24:01 +01:00
Stenzek f43d85921d VideoBackends: Add AbstractStagingTexture class
Can be used for asynchronous readback or upload of textures.
2017-11-22 18:47:04 +10:00
JosJuice b8c83dd5f3
Merge pull request #5973 from ligfx/renamefifoqueue
Rename Common::FifoQueue to Common::SPSCQueue
2017-11-19 13:51:22 +01:00
MerryMage 37419b9a57 Config/Layer: Allow all keys of a section to be iterated over 2017-11-15 18:04:40 +00:00