f47c30a804
Merge pull request #940 from delroth/x64emittertest
...
Add unit tests for the x64Emitter
2014-09-02 02:21:40 -07:00
5b4f1fe92c
UnitTests: Add tests for the x64Emitter
2014-09-02 10:17:32 +02:00
e72146d19c
x64Emitter: Do not assert-fail on redundant MOVs, instead show an error log
2014-09-02 10:17:32 +02:00
a79ced2fc2
x64Emitter: Make it clear for both SSE to int conv that X64 regs are expected
2014-09-02 09:55:47 +02:00
c428c5999f
x64Emitter: UNPCKLPS/HPS are now tested
2014-09-02 09:53:00 +02:00
cc0b048c0b
x64Emitter: Support FLD/FSTP with 80 bits operands
2014-09-02 09:52:59 +02:00
f99f302c91
x64Emitter: assert instead of crashing when generating MOVZX with a wrong size
2014-09-02 09:52:04 +02:00
b1738b60fc
x64Emitter: Fix MUL with AH/BH/CH/DH registers.
2014-09-02 09:52:04 +02:00
f0e8b1fda8
x64Emitter: Error out on 8 bits CMOV, and emit 16 bits CMOV properly
2014-09-02 09:52:04 +02:00
d4ec9737bd
x64Emitter: Assert when using an invalid POP instead of generating an INT3
2014-09-02 09:52:04 +02:00
9c4daac3a4
x64Emitter: RDTSC now without a typo'd name
2014-09-02 09:52:04 +02:00
88af225070
x64Emitter: Remove a declared function that is never implemented
2014-09-02 09:52:04 +02:00
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
5941653d47
Merge pull request #920 from shuffle2/msvc-gtest
...
Provide a way to build and run unittests on Windows
2014-09-02 07:40:49 +02:00
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
9b10d36a85
Merge pull request #938 from lioncash/statics
...
Common: Make the LUTs in ColorUtil static
2014-09-02 07:36:17 +02:00
15e19e98cb
Merge pull request #937 from lioncash/namespaces
...
Common: Remove unnecessary "using namespace Gen;" from x64emitter
2014-09-02 07:35:26 +02:00
8913c71dc1
Merge pull request #936 from lioncash/printf
...
DolphinWX: Change a wx Printf call to a Format call
2014-09-02 07:34:28 +02:00
7fb8572765
Merge pull request #935 from lioncash/snprintf
...
DolphinWX: Get rid of an snprintf call in ISOProperties
2014-09-02 07:33:56 +02:00
824a0a19f1
Common: Make the LUTs in ColorUtil static
2014-09-02 00:52:13 -04:00
839cace5ff
msvc: get UnitTests compiling
...
Choose it from VS or pass /p:RunUnitTests=true to msbuild
2014-09-01 21:27:45 -07:00
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
266992684d
msvc: remove some remnants of SDL and DSound from projects and general cleanup.
2014-09-01 21:27:44 -07:00
eb08fb5095
msvc: do not compile sample programs for miniupnpc and libpng.
2014-09-01 21:27:43 -07:00
d287a278cf
Merge pull request #880 from RachelBryk/log
...
Disable all logs by default.
2014-09-02 13:50:26 +10:00
e5705a9273
Merge pull request #908 from FioraAeterna/fixenhancedbat
...
MMU: fix enhanced BAT support
2014-09-02 05:46:03 +02:00
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
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
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
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
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
ad51fc7c4b
JIT64: use xor instead of mov for loading a zero regcache immediate
2014-09-01 20:41:10 -07:00
27996a65cf
JIT64: use LEA for the "a = b + imm" case of addi
2014-09-01 20:41:10 -07:00
cd0c52b537
JIT64: avoid using LEA for adds when not necessary
2014-09-01 20:41:10 -07:00
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
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
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
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
b51aa4fa89
Rename Log2 and add IsPow2 to MathUtils for future use
...
Also remove unused pow2/pow2f functions.
2014-09-01 20:41:07 -07:00
ec9fc6bfc1
Common: Remove unnecessary "using namespace Gen;" from x64emitter
2014-09-01 23:10:56 -04:00
e8a929ac1d
DolphinWX: Change a wx Printf call to a Format call
2014-09-01 22:02:38 -04:00
56122728c8
DolphinWX: Get rid of an snprintf call in ISOProperties
2014-09-01 21:55:38 -04:00
aec639470f
Merge pull request #934 from lioncash/unused
...
DolphinWX: Get rid of unnecessary getName function in LogWindow
2014-09-01 20:21:15 -04:00
20c2e8e895
DolphinWX: Get rid of unnecessary getName function in LogWindow
2014-09-01 20:15:50 -04:00
3c0227445c
Revert changes to how DInput filters out XInput devices.
...
This is to remain compatible with XBCD devices.
2014-09-01 14:56:11 -07:00
b026217984
Merge pull request #933 from lioncash/prefix
...
DiscIO: Prefix class member variables with "m_"
2014-09-01 22:45:12 +02:00
1977ea42ae
DiscIO: Prefix class member variables with "m_"
2014-09-01 15:48:02 -04:00
608f9bcd67
Refactor opcode decoding a bit to kill FifoCommandRunnable.
...
Separated out from my gpu-determinism branch by request. It's not a big
commit; I just like to write long commit messages.
The main reason to kill it is hopefully a slight performance improvement
from avoiding the double switch (especially in single core mode);
however, this also improves cycle calculation, as described below.
- FifoCommandRunnable is removed; in its stead, Decode returns the
number of cycles (which only matters for "sync" GPU mode), or 0 if there
was not enough data, and is also responsible for unknown opcode alerts.
Decode and DecodeSemiNop are almost identical, so the latter is replaced
with a skipped_frame parameter to Decode. Doesn't mean we can't improve
skipped_frame mode to do less work; if, at such a point, branching on it
has too much overhead (it certainly won't now), it can always be changed
to a template parameter.
- FifoCommandRunnable used a fixed, large cycle count for display lists,
regardless of the contents. Presumably the actual hardware's processing
time is mostly the processing time of whatever commands are in the list,
and with this change InterpretDisplayList can just return the list's
cycle count to be added to the total. (Since the calculation for this
is part of Decode, it didn't seem easy to split this change up.)
To facilitate this, Decode also gains an explicit 'end' parameter in
lieu of FifoCommandRunnable's call to GetVideoBufferEndPtr, which can
point to there or to the end of a display list (or elsewhere in
gpu-determinism, but that's another story). Also, as a small
optimization, InterpretDisplayList now calls OpcodeDecoder_Run rather
than having its own Decode loop, to allow Decode to be inlined (haven't
checked whether this actually happens though).
skipped_frame mode still does not traverse display lists and uses the
old fake value of 45 cycles. degasus has suggested that this hack is
not essential for performance and can be removed, but I want to separate
any potential performance impact of that from this commit.
2014-09-01 14:35:23 -04:00
5cc0bda3d5
Merge pull request #932 from lioncash/ptr
...
DolphinWX: Use normal instantiation of wxTimer in HotkeyDlg
2014-09-01 20:12:13 +02:00
d9950d8cab
Merge pull request #921 from lioncash/unique
...
DiscIO: Move some raw pointers over to unique_ptr
2014-09-01 20:11:18 +02:00