Commit Graph

27788 Commits

Author SHA1 Message Date
Lioncash 9c5115a627 PPCAnalyst: Simplify boolean assignments in SetInstructionStats()
Ternaries here aren't necessary if all we're checking against is if
something is non-zero
2018-04-08 21:42:43 -04:00
Lioncash f2b2f5b4c7 PPCAnalyst: Make ReorderType an enum class
Makes the values strongly typed and doesn't dump them into the class
itself.
2018-04-08 21:38:19 -04:00
Lioncash 5e5a56bd9b PPCAnalyst: Remove unnecessary includes from header 2018-04-08 21:34:12 -04:00
Lioncash 4bd3b28823 PPCAnalyst: in-class initialize PPCAnalyzer's members
Eliminates the need to assign in the constructor initializer list.
2018-04-08 21:32:15 -04:00
Lioncash 433a56636b PPCAnalyst: Move public interface above private interface 2018-04-08 21:31:19 -04:00
Lioncash b9c872dbca
CMakeLists: Don't dump bochs' includes into the top-level directory
Instead add it to the target interface. This way, only libraries that
link in bochs will see its include directories.
2018-04-08 20:43:18 -04:00
Léo Lam 8894b902df Boot_WiiWAD: Remove a timing issue workaround
This was necessary to work around a FS timing issue which caused small
writes to take much longer than they should.

Now that we emulate timings for the FS module including its file cache,
we don't need to maintain this workaround anymore.
2018-04-08 11:23:18 +02:00
Léo Lam 9dbc760bb7
Merge pull request #6606 from lioncash/bochs
CMakeLists: Link bochs in privately where applicable
2018-04-08 11:08:12 +02:00
Lioncash f1be7cd4a0
CMakeLists: Link bochs in privately where applicable
Everything that links in core doesn't need to see anything related to bochs, because it's only used internally.
Anything else that relies on bochs should be linking it in explicitly.
2018-04-08 04:59:58 -04:00
Léo Lam 0a290f5d11
Merge pull request #6607 from lioncash/ppc
PPCDebugInterface: Remove redundant HostRead_U32() call in Disassemble()
2018-04-08 10:25:43 +02:00
Léo Lam 2a535d5a55
Merge pull request #6608 from lioncash/gekko
Gekko: In-class initialize members where applicable
2018-04-08 10:23:42 +02:00
Léo Lam 219728dbd4
Merge pull request #6609 from lioncash/ufpr
Gekko: Remove unused UFPR union
2018-04-08 10:22:43 +02:00
Léo Lam 3d10344561
Merge pull request #6610 from lioncash/swap
Common/Swap: Amend BigEndianValue's operator= to return a reference to the object rather than returning void
2018-04-08 10:22:10 +02:00
Lioncash 88a80f118c Common/Swap: Amend BigEndianValue's operator= to return a reference to the object rather than returning void
The general convention is to return a reference to the object that was
acted on, otherwise you can get into situations with errors because the
type wasn't being propagated properly
2018-04-08 01:22:18 -04:00
Lioncash 5d1349f9c7 Gekko: Remove unused UFPR union
Using this in its current form would invoke undefined behavior, as it's
using a union to type pun between data types. It's also, well, unused,
so we don't need to keep it around.
2018-04-07 22:30:26 -04:00
Lioncash d5555b49e9 Gekko: In-class initialize members where applicable
Allows defaulting the default constructor. Also moves assignment to
initializer lists where applicable as well.
2018-04-07 22:26:24 -04:00
Lioncash 3e50b0e320 PPCDebugInterface: Remove redundant HostRead_U32() call in Disassemble()
We already read the necessary information with the
HostRead_Instruction() call. Internally, it calls HostRead_U32() as
well, so there's no difference in behavior.
2018-04-07 22:20:59 -04:00
Léo Lam 75574b7b97
Merge pull request #6565 from leoetlino/fs-timing
IOS: Emulate filesystem timings
2018-04-07 23:47:09 +02:00
Léo Lam f4a2ad3c88 IOS/FS: Emulate read/write/close/seek timing
Also bumps up the state version.
2018-04-07 23:35:28 +02:00
Léo Lam 42983c0bd3 IOS/FS: Emulate superblock write timing 2018-04-07 23:35:28 +02:00
Léo Lam b74577ff43 IOS/FS: Emulate GetAttr() timing 2018-04-07 23:35:28 +02:00
Léo Lam 896d875187 IOS/FS: Emulate Open() timing 2018-04-07 23:35:28 +02:00
Léo Lam 32b1409cbd IOS/FS: Use hardware tested minimum reply time
...instead of an arbitrary guess.
2018-04-07 23:35:28 +02:00
Léo Lam bb38b612ba
Merge pull request #6602 from lioncash/xxhash
CMakeLists: Don't dump xxhash's includes into top-level directory scope
2018-04-07 23:31:13 +02:00
Léo Lam 7dff069659
Merge pull request #6605 from spycrab/gc_fix_rumble
[RFC] Core/GC: Fix rumble for "Luigi's Mansion"
2018-04-07 23:23:30 +02:00
spycrab eed066e8a7 Core/GC: Fix rumble for "Luigi's Mansion" 2018-04-07 22:13:01 +02:00
Lioncash 181539e049
Interpreter_LoadStore: Generate a program exception if dcbz_l is executed when HID2[LCE] is zero
If the locked cache isn't enabled, dcbz_l is illegal to execute
(locked cache is off, locked cache instructions don't work, makes sense)

This makes exception handling more accurate. It was previously possible to hit the DSI exception
handler when HID2[LCE] is set to zero, which isn't correct.

With this change we no longer hit the DSI handler, however we still have a lingering issue elsewhere
likely to do with exception precedence, we seem to hit the Floating Point exception handler instead
in some cases. This isn't due to the instruction itself directly however, so this is just another bug
to fix elsewhere.
2018-04-06 23:53:44 -04:00
Mat M 5ed12b45ec
Merge pull request #6603 from orbea/ffmpeg
[AVIDump] fix compilation on Linux
2018-04-06 23:49:29 -04:00
Anthony 9e2806c181 [AVIDump] fix compilation issues on Linux 2018-04-06 19:53:10 -07:00
Lioncash a4ba92c697
CMakeLists: Don't dump xxhash's includes into top-level directory scope
We already use a custom CMakeLists file for xxhash, so we can just make it's headers
public as part of its target interface.

This way, only libraries that link in the xxhash target will see its headers, as opposed
to every target under the top-level directory.
2018-04-06 10:41:58 -04:00
Léo Lam a957bd1ecc
Merge pull request #6421 from leoetlino/fs-interface
IOS: Refactor the filesystem code
2018-04-06 12:17:09 +02:00
Léo Lam c2fa6f5bee
Merge pull request #6599 from lioncash/cmake-option
CMakeLists: Move build options to the top of the file
2018-04-06 12:13:34 +02:00
Léo Lam cc3a98ad08
Merge pull request #6601 from lioncash/mkdir
DolphinWX/DolphinQt2 CMakeLists: Use cmake -E instead of mkdir -p for creating language directories
2018-04-06 12:01:28 +02: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
Léo Lam a3bdb5d85e
Merge pull request #6598 from lioncash/target
DolphinQt2/CMakeLists: Use the target_* equivalents of add_definitions and include_directories
2018-04-05 17:53:24 +02:00
Léo Lam 4cd5ef76ad
Merge pull request #6537 from spycrab/qt_quick_assign
Qt/Mapping: Implement "Iterative Input"
2018-04-05 17:44:30 +02:00
Léo Lam a66c7d6a64
Merge pull request #6600 from lioncash/leak
DolphinQt2/MainWindow: Resolve a memory leak on systems with X11
2018-04-05 17:42:15 +02: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
Léo Lam d0b7c013a1
Merge pull request #6593 from lioncash/headless
DolphinNoGUI/CMakeLists: Remove the use of SRCS and LIBS variables
2018-04-05 10:07:31 +02:00
Léo Lam 39cb22ddc9
Merge pull request #6594 from lioncash/qt
DolphinQt2/CMakeLists: Specify Qt libraries via COMPONENTS in the find_package call
2018-04-05 10:03:41 +02:00
Markus Wick a9cd67125c
Merge pull request #6597 from lioncash/fp-load-store
Interpreter_LoadStore: Generate alignment exceptions if an FP load/store instruction's effective address is not word aligned
2018-04-05 09:55:49 +02:00
Markus Wick a8821839da
Merge pull request #6596 from lioncash/dcbz
Interpreter_LoadStore: Generate alignment exceptions if dcbz or dcbz_l are executed with the data cache disabled
2018-04-05 08:46:36 +02: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
spycrab e0ba2a4aeb Qt: Implement "Iterative Input" 2018-04-04 21:51:51 +02: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