Commit Graph

14448 Commits

Author SHA1 Message Date
Fiora
34287b8042 JIT: some paired singles optimizations 2014-09-15 08:33:39 -07:00
Fiora
d02b7c7755 JIT: support immediate stores 2014-09-15 07:25:32 -07:00
Fiora
02dce5dbbf x64Emitter: fix silent failure if WriteNormalOp is passed two memory operands
Should now fail loudly and clearly instead.
2014-09-15 07:08:08 -07:00
Ryan Houdek
68b2d86daf Merge pull request #1088 from FioraAeterna/revert-1077-integeropts2
Revert "Two small JIT optimizations"
2014-09-15 09:03:16 -05:00
Fiora
a248e49c97 Revert "Two small JIT optimizations" 2014-09-15 07:01:51 -07:00
Ryan Houdek
20af50b1c4 Merge pull request #1077 from FioraAeterna/integeropts2
Two small JIT optimizations
2014-09-15 07:09:11 -05:00
skidau
1458b59156 Merge pull request #1065 from Sonicadvance1/AArch64-fix-regcache
Fix all the current issues with the AArch64 register cache.
2014-09-15 13:02:16 +10:00
Fiora
3845c27155 JIT: save an instruction in psq_l 2014-09-14 15:12:57 -07:00
Fiora
af471d0a84 JIT: optimize andi(s)_rc
We usually don't need to do a sign-extend for the resulting flags.
2014-09-14 15:12:14 -07:00
Fiora
9b8cfcdc29 Interpreter: fix carry calculation in srawx
I don't know anything this affected, but it didn't match the manual (or JIT).
2014-09-14 15:08:57 -07:00
comex
74f8a48ee6 Merge pull request #1063 from FioraAeterna/fastermmufix
MMU: properly check MEM1 range on Gamecube games
2014-09-14 15:17:09 -04:00
comex
db7617248f Merge pull request #1021 from FioraAeterna/optimizeca3
JIT: Carry optimizations!
2014-09-14 15:08:08 -04:00
Ryan Houdek
8605a38ba4 Merge pull request #1084 from waddlesplash/stupid-externals
PolarSSL: don't install stuff.
2014-09-14 13:42:37 -05:00
Augustin Cavalier
60ffe152de PolarSSL: don't install stuff.
Be a little more careful next time, @Sonicadvance1!
2014-09-14 14:21:04 -04:00
Lioncash
b307bb68d7 Merge pull request #1080 from lioncash/wx-crap
Kill off the wx casts within InputCommon and GLInterface.
2014-09-14 13:21:34 -04:00
Ryan Houdek
4e7f284a81 Merge pull request #1064 from Sonicadvance1/AArch64-Fix-MOVI2R
Fix AArch64 MOVI2R helper function.
2014-09-14 09:26:02 -05:00
Ryan Houdek
4e16abd742 Merge pull request #1083 from FioraAeterna/lzcnt
Add LZCNT support, use in cntlzw
2014-09-14 09:18:10 -05:00
Fiora
40b18f09b2 JIT: use LZCNT in cntlzw 2014-09-14 05:36:23 -07:00
Fiora
997c5c2d0e x64Emitter: add LZCNT/TZCNT support and detection
Also add a unit test.
2014-09-14 05:31:22 -07:00
Ryan Houdek
1f7871f9e2 Merge pull request #1082 from FioraAeterna/fixccagain
JIT: fix JIT with conditional continue off, again
2014-09-14 03:22:03 -05:00
Fiora
653140fcfa MMU: properly check MEM1 range on Gamecube games
Fixes at the very least Rogue Squadron II crashes.
2014-09-14 00:16:37 -07:00
Fiora
9d2b2cae4a JIT: fix JIT with conditional continue off, again 2014-09-14 00:12:27 -07:00
skidau
da717bfce4 Merge pull request #1075 from phire/jitil-fastmem
Fix Fastmem in JitIL for massive speed gains.
2014-09-14 15:44:27 +10:00
Lioncash
357c0adc3c Kill off the wx casts within InputCommon and GLInterface.
All because someone didn't actually return the wxWindow handle for the edge case.
2014-09-14 01:07:08 -04:00
Scott Mansell
6956df79b2 Fix Fastmem in JitIL for massive speed gains.
JitIL's fastmem was stubbed out when Sonicadvance1 merged JitARMIL
into the tree. Since JitARMIL has been deleted, I simply re-arrange
the inheritance to base JitIL on Jitx86Base, so it can inherit the
backpatch function.

Povray Benchmark: 1985 seconds to 1316 seconds.
2014-09-14 16:21:54 +12:00
comex
0b44795cf3 Merge pull request #1079 from lioncash/lol-objc
InputCommon: Initialize NSDictionaries using literal syntax.
2014-09-13 22:59:44 -04:00
Lioncash
6cfc5b9849 InputCommon: Initialize NSDictionaries using literal syntax. 2014-09-13 21:32:33 -04:00
Pierre Bourdon
d7b7487405 Merge pull request #1078 from lioncash/brace
UnitTests: Fix misplaced braces in the x64Emitter tests
2014-09-14 02:48:56 +02:00
Lioncash
068799ff73 UnitTests: Fix misplaced braces in the x64Emitter tests 2014-09-13 20:45:17 -04:00
Pierre Bourdon
84a564a304 Merge pull request #1060 from rohit-n/move-using
JitArm32: Minor cleanup.
2014-09-14 01:59:39 +02:00
Pierre Bourdon
eee473ed5f Merge pull request #1066 from lioncash/breaks
DiscIO: Remove unnecessary break statements.
2014-09-14 01:58:44 +02:00
Pierre Bourdon
9607cc4159 Merge pull request #1071 from archshift/patch-1
ConfigManager.cpp: Removed three elements from platform-ifdef
2014-09-14 01:58:17 +02:00
Pierre Bourdon
439068acae Merge pull request #1055 from FioraAeterna/smallermov
X64Emitter: support shorter mov reg, imm opcodes
2014-09-14 01:57:36 +02:00
Pierre Bourdon
cb2e53e7c6 Merge pull request #1068 from rohit-n/use-vector
CBoot: Use vectors instead of raw pointers in ELF functions.
2014-09-14 01:55:01 +02:00
Fiora
1bd8d1ee98 Add immediate tests for WriteNormalOp
also fix a bug in Bochs that was preventing adc from passing.
2014-09-13 16:39:34 -07:00
Pierre Bourdon
2ab19c7cec Merge pull request #927 from FioraAeterna/fastermmu
Fiora's Faster MMU Project
2014-09-14 00:36:07 +02:00
Fiora
32a67ef264 JIT: fix memcheck on float load/store, plus some corner cases 2014-09-13 13:53:19 -07:00
Fiora
b3c1cec197 JIT: fix memcheck with stXx 2014-09-13 13:53:18 -07:00
Fiora
9a19314969 JIT: make memcheck macro support an inverted mode 2014-09-13 13:53:13 -07:00
Fiora
54e26f64c6 JIT: use far code emitter in more places 2014-09-13 13:51:12 -07:00
Fiora
08ac10d00a PPCAnalyst/JIT: add ability to easily toggle branch and carry merging 2014-09-13 13:48:24 -07:00
Fiora
54129a8ca5 PPCAnalyst: refactor, add carry op reordering and non-cmp reordering
Tries as hard as possible to push carry-using operations (like addc and adde)
next to each other. Refactor the instruction reordering to be more flexible
and allow multiple passes.

353 -> 192 x86 instructions on a carry-heavy code block in Pokemon Puzzle.
12% faster overall in Pokemon Puzzle; probably less in typical games (Virtual
Console games seem to be carry-heavy for some reason; maybe a different
compiler?)
2014-09-13 13:48:23 -07:00
Fiora
45d84605a9 JIT64: optimize carry calculations further
Keep carry flags in the x86 flags register if used in the next instruction.
2014-09-13 13:48:20 -07:00
Fiora
bea2504a51 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-13 13:47:43 -07:00
Dolphin Bot
d72f61d62f Merge pull request #1073 from phire/save_jitil2
Fix Idle Skipping in JitIL.
2014-09-13 18:40:57 +02:00
Scott Mansell
cf869fc24f Fix Idle Skipping in JitIL.
Has been broken since the flags-opt merge. The idle skipping code in
JitIL was very brittle and depended on the IL of it's inputs not
changing in any way.

flags-opt changed the IR generated by the cmp instruction, which is part
of the idle loop, causing JitIL to break in really weird ways, which
were almost impossible to track down.

This fixes various wii games crashing/not booting and the Regspill
error on (all?) gamecube mmu games.
2014-09-14 04:36:50 +12:00
Ryan Houdek
a30b4f13a1 Merge pull request #1067 from lioncash/fallthrough
DolphinWX: Get rid of fallthrough in ScanForISOs
2014-09-13 04:52:30 -05:00
Fiora
c5381bae66 JIT: add "far code emitter" to reduce L1I cache pressure 2014-09-13 02:31:31 -07:00
Fiora
09a62505c5 JIT: support paired load/store with MMU on
Also change the calling convention, to avoid RSCRATCH being clobbered by
memcheck'd loads.
2014-09-13 02:18:11 -07:00
skidau
8e2eaf46e2 Merge pull request #1047 from Linktothepast/master
Gameini cleanup.
2014-09-13 18:28:02 +10:00