Mat M
5ed12b45ec
Merge pull request #6603 from orbea/ffmpeg
...
[AVIDump] fix compilation on Linux
2018-04-06 23:49:29 -04:00
Lioncash
3e946d87e4
DolphinWX/DolphinQt2 CMakeLists: Use cmake -E instead of mkdir -p for creating language directories
...
CMake already has this functionality built-in. This lessens depending on the host system environment
and is more cross-platform friendly (which is always nice from a build-system point of view).
2018-04-05 12:49:33 -04:00
Lioncash
839fc7e749
DolphinQt2/MainWindow: Resolve a memory leak on systems with X11
...
In the case we had X11 libs available, we'd allocate an XRRConfiguration instance and pass it
to the GraphicsWindow instance, but it would never actually be freed.
2018-04-05 09:07:08 -04:00
Lioncash
b4e36bbd27
CMakeLists: Move build options to the top of the file
...
Makes the configurable aspects of the build more immediately discoverable
as opposed to needing to read down the entire file.
2018-04-05 08:27:49 -04:00
Lioncash
9c27c7eda8
DolphinQt2/CMakeLists: Use the target_* equivalents of add_definitions and include_directories
...
add_definitions and include_directories don't operate on a by-target basis, they act on a
by-directory basis (i.e. if we defined two targets, A and B, in this CMakeLists file, add_definitions
would add the definitions to the COMPILE_DEFINITIONS directory property which both A and B would
implicitly use).
The same idea applies to include_directories, only it appends to the INCLUDE_DIRECTORIES directory
property.
Instead, specify these on the target to keep scope as narrow as possible.
2018-04-05 07:52:25 -04:00
Lioncash
912c9490c0
Interpreter_LoadStore: Generate alignment exceptions if an FP load/store instruction's effective address is not word aligned
...
This is one of the conditions for an alignment exception documented in
the 750CL architecture reference manual in section 4.5.6, which also
applies to the Gekko microprocessor.
2018-04-05 00:30:53 -04:00
Lioncash
980f1641b5
Interpreter_LoadStore: Generate alignment exceptions if dcbz or dcbz_l are executed with the data cache disabled
...
This is an exception condition documented within section 4.5.6 in the
architecture reference manual for the PPC 750CL, which also applies to
the Gekko microprocessor.
Also moves dcbz_l's implementation out of Interpreter_Paired and beside
dcbz where it belongs.
2018-04-04 18:44:17 -04:00
Lioncash
fb929ab8e5
DolphinQt2/CMakeLists: Specify Qt modules via COMPONENTS in the find_package call
...
Eliminates the need to find the individual modules separately
2018-04-04 15:05:20 -04:00
Lioncash
84ed6fd445
CMakeLists: Remove the LIBS variable
...
Now that we link all libraries in explicitly, the top-level LIBS variable can finally go.
2018-04-04 11:46:30 -04:00
Lioncash
6f694e435c
DolphinNoGUI/CMakeLists: Remove the use of SRCS and LIBS variables
...
Instead, operate on the target directly. This removes the last usages of the
SRCS and LIBS variables.
2018-04-04 11:42:57 -04:00
Lioncash
5e4446c313
DolphinQt2/CMakeLists: Remove usages of LIBS and SRCS variables
...
Instead, operate on the target itself. Also removes the variable
representing the name of the target. We can just refer to this directly
2018-04-04 09:09:45 -04:00
Lioncash
3ea0a37d72
Interpreter_LoadStore: Generate alignment exceptions if lmw, lswi, lswx, stmw, stswi, or stswx is executed when the MSR[LE] bit is set
...
Improves exception accuracy regarding an admittedly very unlikely
scenario.
2018-04-03 20:47:40 -04:00
Mat M
88853551e6
Merge pull request #6590 from lioncash/hires
...
HiresTexture: Correct texture hashes
2018-04-03 19:00:28 -04:00
Lioncash
74aff4d9ef
HiresTexture: Correct texture hashes
...
Fixes a regression introduced in 2da8d98b2f
2018-04-03 12:42:05 -04:00
Lioncash
21ee216e63
Android/CMakeLists: Remove usages of LIBS and SRCS variables
...
Instead, operate on the target itself.
2018-04-03 08:05:43 -04:00
Lioncash
516b46845d
DolphinWX/CMakeLists: Remove usages of the LIBS and SRCS variables
...
Instead, operated on the target itself.
2018-04-03 08:04:29 -04:00
Lioncash
de0ed1a5fb
Interpreter_LoadStore: Update the DAR if a DSI exception occurs in eciwx and ecowx
...
Also once a DSI exception occurs, execution is supposed to leave the
instruction immediately. It doesn't finish execution.
2018-04-02 08:34:32 -04:00
Lioncash
a013638dcb
Interpreter_LoadStore: Properly update the DAR whenever an alignment exception occurs within eciwx and ecowx
...
These should be updating the DAR when an alignment exception occurs,
just like every other instruction that can cause an alignment exception.
2018-04-02 08:34:32 -04:00
Lioncash
c1b78106e7
Interpreter_LoadStore: Flag alignment exceptions on misaligned addresses in lwarx, lmw, stmw, and stwcx
...
The effective address given to these instructions must be word (4 byte) aligned,
and if the address is not aligned like that, then an alignment exception
gets triggered.
We currently don't update the DSISR in this case properly, since we
didn't really handle alignment exceptions outside of ecowx and eciwx,
and even then the handling of it isn't really that great, considering
the DAR isn't updated with the address that caused the exception to
occur.
The DSISR will eventually be amended to be properly updated.
2018-04-02 08:34:26 -04:00
Lioncash
22be923b91
CMakeLists: Remove add_dolphin_library macro
...
With all library targets migrated off add_dolphin_library, we can finally remove it
2018-04-02 08:31:56 -04:00
Lioncash
b184923540
Vulkan/CMakeLists: Migrate off add_dolphin_library
...
Finishes the migration work started in 3a4c3bbe01
2018-04-02 08:29:37 -04:00
Lioncash
8b43a31855
Software/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:24:40 -04:00
Lioncash
a3c53ff754
OGL/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:22:39 -04:00
Lioncash
d4f8502ad1
Null/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:17:00 -04:00
Lioncash
3854e2bcca
D3D/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:15:22 -04:00
Lioncash
672665dec0
AsyncRequests: In-class initialize class members
...
Prior to this change, it's possible for m_wake_me_up_again to be used
while it's in an uninitialized state from the exposed API.
e.g.
- Using SetEnable after construction would perform an uninitialized read.
- Using PushEvent would perform an uninitialized read by way of operator |=.
internally, an uninitialized read can happen if PullEventsInternal() is
executed before other functions.
Just to avoid the whole possibility of performing uninitialized reads,
we just give the class member a default value of false.
2018-04-01 19:06:43 -04:00
Lioncash
fd9eab73fb
CPUDetect: Make CPUVendor enum an enum class
...
Avoids dumping the enum contents into the global namespace.
2018-04-01 17:47:50 -04:00
Lioncash
0f6c3c7b35
Jit64/JitRegCache: Make member functions const qualified where applicable
...
None of these member functions modify class state.
Also makes the parameter name for ScoreRegister's implementation
consistent with its declaration.
2018-04-01 16:53:00 -04:00
Lioncash
6cfa9fda6b
DSPJitRegCache: Make FindFreeReg() a const member function
...
This member function doesn't modify class state.
2018-04-01 16:01:25 -04:00
Lioncash
fe9d989765
DSPJitRegCache: Remove unnecessary casts in FlushRegs()
...
We can just use the proper printf specifiers instead.
2018-04-01 15:49:21 -04:00
Lioncash
ad17d9a979
IOS/Socket: Delete WiiSocket's copy constructor
...
If the copy assignment operator is deleted, then the copy constructor
should be deleted as well, otherwise it's a hole in the API where copies
can be made (and if this were an intended case, it should be
documented).
So we delete the copy constructor and explicitly default the move
assignment and move constructor to signify this is intended to be a
move-only type.
2018-04-01 15:38:37 -04:00
Lioncash
ad575a1556
IOS/Socket: Place WiiSocket's private interface below the public interface
...
In the rest of the codebase we try to position the private interface
below the public interface (unless it's otherwise not possible).
2018-04-01 15:38:33 -04:00
Lioncash
abb33637a3
IOS/Socket: In-class initialize WiiSocket members
2018-04-01 15:27:58 -04:00
Lioncash
8fbd6e2a87
EXI_DeviceMemoryCard: Get rid of magic number in SetCS()
...
Keeps the code consistent with other usages of the same constant
2018-04-01 15:21:20 -04:00
Mat M
d8dd7b9e66
Merge pull request #6533 from spycrab/qt_desc_box
...
Qt/GraphicsWindow: Decrease description box size
2018-04-01 14:06:50 -04:00
Lioncash
8db4ab7dd6
CMakeLists: Remove iconv from the LIBS variable
...
Adjusts Common to use the ICONV_LIBRARIES variable directly and doesn't
append it to the LIBS variable.
After this, there's only one remaining usage where libraries are added
to the LIBS variable, after which it can be removed once the rest of
the targets are migrated off add_dolphin_library
2018-04-01 14:00:55 -04:00
Lioncash
677b9b717f
CMakeLists: Remove enet from the LIBS variable
...
All libraries that use enet already link it in explicitly. This reduces
the usages of the LIBS variable.
2018-04-01 11:18:08 -04:00
Lioncash
a4420d6d94
Jit64: Make CheckMergedBranch() a const member function
...
This function doesn't modify class state.
2018-03-31 20:12:53 -04:00
Lioncash
136f16599f
UnitTests: Add basic tests for RotateRight() and RotateLeft()
2018-03-31 18:09:50 -04:00
Lioncash
c3483a1823
CommonFuncs: Generify rotation functions and move them to BitUtils.h
...
These are bit manipulation functions, so they belong within BitUtils.
This also gets rid of duplicated code and avoids relying on compiler
reserved names existing or not existing to determine whether or not we
define a set of functions.
Optimizers are smart enough in GCC and clang to transform the code to a
ROR or ROL instruction in the respective functions.
2018-03-31 18:09:45 -04:00
Lioncash
eee32c030b
CMakeLists: Remove lzo from the LIBS variable and make linkage private
...
The only place this library is needed (core) is already linked in the core target.
Also make the linkage private to create linkage failures if the dependency isn't
explicitly linked in elsewhere where it should be.
Reduces the dependency on the LIBS variable.
2018-03-31 15:01:05 -04:00
Mat M
76e1a5b892
Merge pull request #6569 from JosJuice/kill-emu-state
...
Remove EmuState
2018-03-31 14:04:30 -04:00
Mat M
a6f1c6e2e9
Merge pull request #6568 from leoetlino/dead
...
Remove dead code
2018-03-31 14:02:40 -04:00
Lioncash
e93159e54a
CMakeLists: Link in system framework libraries explicitly on macOS
...
Makes our libraries explicitly link in which libraries they need.
This makes our dependencies explicit and removes the reliance on the
LIBS variable to contain the libraries that they need.
2018-03-30 16:14:10 -04:00
Mat M
c3398c9e2c
Merge pull request #6559 from spycrab/qt_crashes
...
Qt/PatchesWidget: Fix segfault
2018-03-29 18:51:22 -04:00
Mat M
fc99b21080
Merge pull request #6560 from JosJuice/invalid-games-in-game-list
...
DolphinQt2: Don't show invalid games in game list
2018-03-29 18:49:38 -04:00
Mat M
65a1065cde
Merge pull request #6561 from JosJuice/uid-version-last-changed
...
Put a "last changed in PR" comment next to UID cache version
2018-03-29 18:48:12 -04:00
Mat M
8185b5f1fd
Merge pull request #6562 from JosJuice/translate-qos
...
Translate the netplay chat info message about QoS
2018-03-29 18:47:29 -04:00
Lioncash
b8a4ab23dd
InputCommon/CMakeLists: Link in ForceFeedback library explicitly on macOS
...
Makes an implicit dependency explicit. Also makes the macOS libraries link privately
as they aren't used in the exposed interface.
2018-03-29 11:53:50 -04:00
Lioncash
b818cc682c
VideoCommon/Vulkan: Explicitly link in xxhash
...
Lessens the dependency on the LIBS variable (and also makes the required
libraries explicit).
2018-03-28 17:03:16 -04:00
Lioncash
fd7ac0d4a3
VideoCommon/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-03-28 09:57:50 -04:00
Lioncash
a2a18380a7
UICommon/CMakeLists: Migrate off of add_dolphin_library
...
Continues the migration work started in
3a4c3bbe01
2018-03-28 06:29:09 -04:00
Lioncash
df4ca7f05e
SearchBar: Remove unused class variables
2018-03-27 22:47:02 -04:00
Lioncash
306d132232
MainWindow: Remove unused std::string variable in NetPlayHost()
2018-03-27 22:47:02 -04:00
Lioncash
833c030496
WiiPane: Remove unused variable in OnUSBWhitelistRemoveButton()
2018-03-27 22:47:01 -04:00
Lioncash
eb8a853d8e
Resources: Remove unused string in Init()
2018-03-27 22:47:01 -04:00
Lioncash
568490fdfb
MD5Dialog: Call .empty() instead of testing against an empty string
2018-03-27 22:47:01 -04:00
Lioncash
d3283a881f
MenuBar: Remove unnecessary c_str() call
...
Also uses the character overload for find_last_of
2018-03-27 22:47:01 -04:00
Lioncash
b637163704
CodeWidget: Remove unnecessary c_str() calls
2018-03-27 22:46:51 -04:00
Lioncash
4a1123f519
HacksWidget: Remove duplicate AddDescription() call in AddDescriptions()
2018-03-27 22:36:37 -04:00
Lioncash
aa42534fed
FilesystemWidget: Pass path QString by const reference instead of by value in ExtractDirectory()
...
Makes it consistent with the surrounding API.
Also corrects a typo in ExtractFile's parameter list.
2018-03-27 22:00:40 -04:00
Lioncash
fc531993a9
DiscExtractor: Pass partition by reference rather than by value in ExtractDirectory()
2018-03-27 21:49:42 -04:00
Lioncash
008442898c
LinearDiskCache: Don't cast away const in Read()
...
We really shouldn't make the out pointer in the read function const and
then summarily cast it away. Also alters Write to be consistent with
casting.
2018-03-27 21:09:18 -04:00
Lioncash
f10198500e
PixelShaderGen: Invert conditional in WriteColor()
...
Puts the true condition body first instead of the false one for better
reading.
2018-03-27 18:53:17 -04:00
Lioncash
c9e0045881
PixelShaderGen: Remove dead code in WriteColor()
...
The outer conditional executes only whenever destination alpha is used.
2018-03-27 18:46:25 -04:00
Lioncash
2da8d98b2f
HiresTextures: Use std::minmax or std::minmax_element where applicable in GenBaseName()
...
Minimizes repetition.
std::minmax_element can be used for the 256 * 2 case, as it's only performing byte comparisons
and thus, there will always be an element smaller than 0xffff, so it doesn't need to be included
in the set of compared values.
2018-03-27 15:39:05 -04:00
Lioncash
d5a1edba09
HiresTextures: Remove unnecessary pointer casts in GenBaseName()
...
swap16 has an overload that accepts a u8*, performing the same behavior
in a well-defined manner.
2018-03-27 15:19:02 -04:00
Lioncash
9feb18866b
BPStructs: Remove an unnecessary pointer cast in GetBPRegInfo
...
swap32 has an overload that accepts a u8*, performing the same behavior
in a well-defined manner.
2018-03-27 12:04:16 -04:00
Lioncash
476c71efc1
x64Emitter: Make eligible register and immediate functions constexpr
...
Pointer variants aren't eligible as expressions with reinterpret cast
within them cannot be constexpr.
2018-03-26 18:21:22 -04:00
Lioncash
8b072e1383
x64Emitter: Make remaining eligible functions in OpArg constexpr
2018-03-26 18:21:21 -04:00
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
4a4538abbf
Interpreter_LoadStore: Amend variable naming
...
Amends variable names to follow our code style. Also makes code const correct where possible.
2018-03-26 07:47:50 -04:00
Lioncash
1519e4dbb3
DSPEmitter: Remove uses of the DSP JIT global in CompileCurrent()
...
With this, the DSPEmitter itself no longer makes use of the DSP JIT global
2018-03-26 01:14:17 -04:00
Lioncash
8b29997ed1
Interpreter: Remove an unnecessary UReg_MSR& cast from SingleStepInner
...
This is technically undefined behavior, but regardless of that, it's not
even necessary since we can just make a temporary around the MSR value
and just discard it when done with it, since all we do is query the FP
bit value with it.
2018-03-25 21:36:39 -04:00
Lioncash
b0efcdc8ef
Interpreter: Get rid of static state within SingleStepInner()
...
Given how the hooking operates, we may not execute an instruction.
Instead of making the state a static local to the function, just make it
part of the lifecycle of the Interpreter class.
2018-03-25 21:30:00 -04:00
Lioncash
c4a597171c
MMU: Make XCheckTLBFlag an enum class
2018-03-25 19:51:47 -04:00
Lioncash
9967c24f5d
MMU: Make TLBLookupResult an enum class
2018-03-25 19:44:14 -04:00
Lioncash
0f25627614
DSPCodeUtil: Don't return data via an out parameter
...
We can just return directly in these cases.
2018-03-25 18:55:08 -04:00
Lioncash
e42db3594b
DSPAssembler: Make error code enum an enum class
...
Prevents the error codes from littering the surrounding scope.
2018-03-25 18:19:08 -04:00
Lioncash
8c421ffbb7
DSPTables: Remove opc_t typedef
...
This was only ever used by the DSP assembler, and even then it was
sparsely used. Get rid of it to be consistent with types in other
sections of the DSP code.
2018-03-25 17:53:23 -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
Lioncash
7bd41a3b55
Jit64/Jit_Integer: Remove dead code in arithXex()
...
The conditional this code is within already checks whether d == b, so this
conditional will never be true.
2018-03-25 15:35:02 -04:00
Lioncash
efcdb3debb
JitArm64/JitAsm: Remove usages of the JIT global
...
With this, the entire ARM JIT makes no use of the JIT global whatsoever.
2018-03-25 15:23:49 -04:00
Lioncash
a45631c4ca
Interpreter_LoadStore: Remove unnecessary casts
...
These aren't necessary as the type being stored into a u32 are of the
same signedness and are smaller in data size, so there's no truncation
being performed.
2018-03-25 15:09:32 -04:00
Lioncash
48e2e9a41d
CachedInterpreter: Use using aliases instead of typedef
2018-03-25 02:57:25 -04:00
Lioncash
9829083241
CachedInterpreter: Use an enum class for instruction type
2018-03-25 02:57:16 -04:00
Lioncash
89df65aa25
Interpreter_Integer: Correct precedence of overflow check in nego
...
The overflow check needs to occur before the condition register update
due to the fact that the summary overflow (SO) bit is used in the
updating of the condition register. If we set any overflow bits after
updating the CR, then we can potentially incorrectly report that an
overflow did not happen (in the case the SO bit wasn't set previously).
2018-03-24 20:48:05 -04:00
Lioncash
96014e74a3
Interpreter_Paired: Don't dump the entire MathUtils namespace into scope
...
Functions from the namespace are only used four times within the entire
file.
2018-03-24 19:42:14 -04:00
Lioncash
46f61a48c7
Interpreter_FloatingPoint: Don't dump the entire MathUtils namespace into scope
...
Given functions from the MathUtils namespace are only used six times in
the whole file, dumping the namespace seems a little excessive.
2018-03-24 19:40:22 -04:00
Lioncash
27611d55ff
Interpreter_FPUtils: Get rid of a pointer cast
...
This is undefined behavior according to the standard. We can just use
the built in means of retrieving a quiet NaN.
2018-03-24 19:33:44 -04:00
Lioncash
8a7abd72b4
PPCTables: Remove prefixed underscores from parameter names
2018-03-24 16:46:49 -04:00
Lioncash
2381aeecc3
PPCTables: Namespace all exposed functions
...
It's somewhat inconsistent to have two straggler functions outside the
namespace.
2018-03-24 16:46:12 -04:00
Lioncash
397b3fb976
CPUCoreBase: Make the GetName() member function const qualified
...
This function should have no need to modify internal class state.
2018-03-24 16:17:39 -04:00
Lioncash
c738ddc4aa
CPUCoreBase: Default the virtual destructor
2018-03-24 16:09:19 -04:00
Lioncash
ef6e747a68
PowerPC: Remove commented out PanicAlert
2018-03-24 14:52:22 -04:00
Lioncash
3dc3b0caa5
Interpreter_LoadStore: Remove commented out code
...
Also removes long separation lines that aren't really necessary.
2018-03-24 14:49:18 -04:00
Lioncash
f9e0645b99
Interpreter_SystemRegisters: Remove commented out code
2018-03-24 14:45:46 -04:00
Lioncash
288b579c09
Interpreter_Integer: Remove commented out code in subfic
2018-03-24 14:43:25 -04:00
Lioncash
01308330d9
InputCommon/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-03-24 14:13:53 -04:00