4632 Commits

Author SHA1 Message Date
Fiora
6875d911f1 JIT: merge paired timebase reads where possible
Combined with the previous patch, ~1% faster overall on F-Zero GX.
2014-09-02 21:49:24 -07:00
Fiora
816d056657 JIT: implement timer support in mtspr
Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
2014-09-02 21:47:45 -07:00
Charles Rozhon
0e5fde52ac Fixed bug introduced in PR#803 caused by casting
Also changed casts to C++ style casts to removed some of the ambiguity.
2014-09-02 21:50:43 -05:00
Ryan Houdek
1bc246735b Add some static_asserts to the Arm32 JIT to make sure ppcState is sane. 2014-09-02 18:38:42 -05:00
Fiora
6655c7775e JIT: Fix callee-save registers on WIN64 2014-09-02 10:56:14 -07:00
Pierre Bourdon
ddb2aefedf Merge pull request #904 from FioraAeterna/dcbz
JIT64: try enabling dcbz again
2014-09-02 15:41:40 +02:00
shuffle2
cc6db8cf26 Merge pull request #939 from shuffle2/fix-memcard-flush2
move the decision to delay raw memcard flushes out of the thread.
2014-09-02 00:28:31 -07:00
Shawn Hoffman
44a1a7cdbe move the decision to delay raw memcard flushes out of the thread.
This allows the flush to work better with games which hammer
memcard accesses over short periods as it delays more of the work.
2014-09-01 22:38:31 -07:00
Shawn Hoffman
0625b5defb windows: make failure to load hid.dll or bthprops.cpl not pop a msgbox, and not crash 2014-09-01 21:27:44 -07:00
Shawn Hoffman
266992684d msvc: remove some remnants of SDL and DSound from projects and general cleanup. 2014-09-01 21:27:44 -07:00
Dolphin Bot
e5705a9273 Merge pull request #908 from FioraAeterna/fixenhancedbat
MMU: fix enhanced BAT support
2014-09-02 05:46:03 +02:00
Fiora
3aa40dab00 JIT64: optimize carry calculations
Omit carry calculations that get overwritten later in the block before they're
used. Very common in the case of srawix and friends.
2014-09-01 20:41:48 -07:00
Fiora
a40278b1c4 JIT64: support merged branching for rlwinmx, too
Not quite as common a branch instruction as cmpwi, but close.
2014-09-01 20:41:12 -07:00
Fiora
10d691a277 JIT64: optimize some special cases of srawix
Shift by 31 and 1, both of which are pretty common, can be done in a few less
instructions. Tested with a hwtest.
2014-09-01 20:41:12 -07:00
Fiora
805be80f12 JIT64: Optimize carry handling
Carries are rather common and unpredictable, so do them branchlessly wherever
we can.
2014-09-01 20:41:11 -07:00
Fiora
ee24d4714a JIT64: tweak srwx/slwx BindToRegister arguments
Register B gets immediately moved into the shift register, so even if a == b
it doesn't need to be loaded.
2014-09-01 20:41:11 -07:00
Fiora
ad51fc7c4b JIT64: use xor instead of mov for loading a zero regcache immediate 2014-09-01 20:41:10 -07:00
Fiora
27996a65cf JIT64: use LEA for the "a = b + imm" case of addi 2014-09-01 20:41:10 -07:00
Fiora
cd0c52b537 JIT64: avoid using LEA for adds when not necessary 2014-09-01 20:41:10 -07:00
Fiora
355850f499 JIT64: optimize sign/zero-extend
Also remove some comments that no longer apply since x86_32 was dropped.
2014-09-01 20:41:09 -07:00
Fiora
61af91ff16 JIT64: Optimize cmpXX
Use TEST instead of CMP if we're comparing against 0 (rather common), and
optimize the case of immediate compares further.
2014-09-01 20:41:09 -07:00
Fiora
41c3dde737 JIT64: optimize rlwinmx/rlwinix and friends
Take advantage of movzx as a replacement for anding with 0xff or 0xffff, and
abuse loads from the register cache to save ops.
2014-09-01 20:41:08 -07:00
Fiora
58dc802ce2 JIT64: optimize multiplication by immediate constants
Factor out common code and handle a few more common cases.
2014-09-01 20:41:08 -07:00
Pierre Bourdon
24b5ce2ddc Merge pull request #917 from lioncash/input
InputCommon: Rename class InputPlugin to InputConfig
2014-09-01 16:36:52 +02:00
Lioncash
27bd0ce70e Merge pull request #929 from skidau/dsp-acc-loop
Take the size of the audio data into account when checking for the loop address
2014-09-01 10:07:43 -04:00
skid
91a6962565 Take the size of the audio data into account when checking for the loop address. Fixes the static audio in the FMV of Megaman X Collection, Pac Man World 2, off pitched instruments in Skies of Arcadia and audio desync in the Taiko no Tatsujin series.
Fixes:
issue 7154
issue 7222
issue 7280
issue 7457
2014-09-01 21:43:33 +10:00
Pierre Bourdon
494a60e41b VertexLoader: Change VtxDesc to use u64 instead of u32
This is required to make packing consistent between compilers: with u32, MSVC
would not allocate a bitfield that spans two u32s (it would leave a "hole").
2014-09-01 11:18:02 +02:00
Lioncash
f8e24de833 Merge pull request #907 from FioraAeterna/rollbacklmw
JIT: revert lmw optimizations
2014-08-31 13:51:24 -04:00
Lioncash
1a3ebbb831 InputCommon: Rename class InputPlugin to InputConfig 2014-08-31 00:59:06 -04:00
Pierre Bourdon
ea7eee1f58 Merge pull request #913 from lioncash/movie-func
Core: Break movie header validity checking into a function
2014-08-31 06:55:04 +02:00
Lioncash
f22597a4ee Core: Break movie header validity checking into a function 2014-08-31 00:52:36 -04:00
Pierre Bourdon
ee880ea73c Merge pull request #914 from lioncash/potential-uninitialized
Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Devices_es.cpp
2014-08-31 06:46:45 +02:00
Lioncash
377a1c8f20 AudioCommon: Get rid of now unused handle param for InitSoundStream() 2014-08-30 23:36:00 -04:00
Ryan Houdek
1a6268e6cf Merge pull request #899 from FioraAeterna/checkram
JIT: fix RAM check in load-from-constant-address
2014-08-30 20:49:33 -05:00
Lioncash
5f43685f4e Core: Fix potential uninitialized variable warnings in Wii_IPC_HLE_Device_es.cpp 2014-08-30 19:06:07 -04:00
Lioncash
beb95b75ca PPCAnalyst: Use std::swap instead of making a temporary variable 2014-08-30 18:32:09 -04:00
Lioncash
eb535be874 Core: Clean up brace placements 2014-08-30 18:06:49 -04:00
Lioncash
77aef014a0 Merge pull request #909 from lioncash/void
Get rid of C-style empty function parameter indicators
2014-08-30 15:28:47 -04:00
Lioncash
1d706b2311 Get rid of C-style empty function parameter indicators 2014-08-30 15:23:48 -04:00
Lioncash
d7db9dd1a8 Core: Change a bitwise OR fail case to a logical AND success check in
ActionReplay.cpp
2014-08-30 15:17:15 -04:00
Fiora
08ab2d3110 MMU: fix enhanced BAT support
I don't know what I can test this on, but it was definitely broken before.
Seems to be a few clock cycles faster too due to the refactoring?
2014-08-30 05:47:05 -07:00
Fiora
1ed6be12b9 JIT: revert lmw optimizations
This seems to break Star Wars Rogue Leader and I have no idea why, so for the
meantime I'm just going to revert it since it's not very important.
2014-08-30 04:17:48 -07:00
Rachel Bryk
ecdd0f6ac0 Add OSD messages back to status bar.
OSD messages can be disabled, while still leaving them in the status bar. This is incredibly useful for certain users, who may wish to see the messages, but do not wish to have them cover up half of the screen. In particular TASers will generally have OSD messages on the screen 100% of the time, and they cover up useful information, making it critical to turn them off. However the messages are still very useful to them, so it's important to have them somewhere.

This reverts 4a16211bae97a42c24ed43cf4174df03d180ac4a.
2014-08-29 17:46:41 -04:00
Fiora
6f617c4175 JIT64: try enabling dcbz again
This time, check the address carefully beforehand, since apparently some games
do horrible things like running it on non-RAM addresses, or at the very least
virtual addresses.
2014-08-29 12:19:58 -07:00
Dolphin Bot
d159bc9998 Merge pull request #886 from RachelBryk/netplay-buffer
Change default netplay buffer to 5.
2014-08-29 06:51:56 +02:00
Fiora
88095a607a JIT: fix RAM check in load-from-constant-address
A bug that seems to have been uncovered by allowing immediate-address loads.
Super Monkey Ball 2 crashes without this change -- it's possible, however, that
the game actually requires the MMU hack, since it crashed due to accessing an
address in the 0x20000000-0x3fffffff range.
2014-08-28 12:54:23 -07:00
Ryan Houdek
ad8fe0fb52 Merge pull request #879 from FioraAeterna/frspx
JIT64: add frspx implementation
2014-08-28 14:12:21 -05:00
Fiora
c359d65dfe JIT64: add frspx implementation 2014-08-28 11:40:31 -07:00
Ryan Houdek
4a78a8a72a Merge pull request #876 from FioraAeterna/floatloadstore
JIT64: clean up and unify float load/store code
2014-08-28 13:37:27 -05:00
Dolphin Bot
359aa664e1 Merge pull request #898 from FioraAeterna/fprffix
JIT: make fprf conditional in fcmp, just like the other instructions
2014-08-28 20:25:26 +02:00