Commit graph

14405 commits

Author SHA1 Message Date
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
Fiora
2661bc151a JIT memcheck: don't flush register state unless an exception occurs 2014-09-12 20:55:00 -07:00
Ryan Houdek
c9a7175418 Merge pull request #1072 from lioncash/arm
ARM64: Make getters within ArithOption const.
2014-09-12 21:44:01 -05:00
Lioncash
a92003c1ab ARM64: Make getters within ArithOption const. 2014-09-12 20:55:26 -04:00
archshift
eae38fd339 ConfigManager.cpp: Removed three elements from platform-ifdef 2014-09-12 17:15:46 -07:00
Rohit Nirmal
edd63c14a4 CBoot: Use vectors instead of raw pointers in ELF functions. 2014-09-12 12:03:06 -04:00
Lioncash
322f033c97 DolphinWX: Get rid of fallthrough in ScanForISOs 2014-09-12 11:52:36 -04:00
Lioncash
4db2af2d42 DiscIO: Remove unnecessary break statements. 2014-09-12 11:34:34 -04:00
Ryan Houdek
e883a6fb2e Fix all the current issues with the AArch64 register cache.
Fixes all the current issues I've been experiencing.
Scaled back the register cache idea for now so I can actually work on some real instructions.

Tested this work with unit tests so I know it works.
Unit tests are pretty great things.
2014-09-12 06:39:15 -05:00
Ryan Houdek
17d31ecd6c Fix AArch64 MOVI2R helper function.
In the case of a zero immediate, it wouldn't generate code at all.
Also in the case of max u32/u64, use ORN to optimize it.
2014-09-12 05:45:10 -05:00
Fiora
a6c9515b00 JIT: unify subfcx and addcx code
Again, shorter and should make future optimizations easier.
2014-09-12 00:04:42 -07:00
Fiora
5d80145dc0 JIT: unify subfe/submex/subfex/adde/addmex/addzex code
Shorter, plus should make future optimizations easier.
2014-09-12 00:04:42 -07:00
skidau
64b21a4812 Merge pull request #1054 from comex/i-hate-warnings
Fix warnings.
2014-09-12 12:35:47 +10:00
Ryan Houdek
d6ef8dc8c6 Merge pull request #1052 from Sonicadvance1/fix-ppcAnalyst-return
Fix the return value of PPCAnalyst.
2014-09-11 21:12:38 -05:00
Ryan Houdek
5061a33c29 Merge pull request #1051 from Sonicadvance1/ARM-Common
Include a missing include in the ARM emitter's common code.
2014-09-11 21:12:21 -05:00
skidau
4cb25633e1 Merge pull request #1048 from lioncash/discio
DiscIO: Minor changes to VolumeDirectory.
2014-09-12 11:31:29 +10:00
Lioncash
669a118063 Merge pull request #1058 from lioncash/semicolon
Remove some unnecessary semicolons
2014-09-11 19:56:08 -04:00
Pierre Bourdon
a96618b2e6 Merge pull request #1036 from phire/save-jitil
Save JitIL! Fix bug so JitIL actually runs again.
2014-09-11 23:27:59 +02:00
Rohit Nirmal
428ee10463 include CommonTypes.h instead of Common.h, remove unused using. 2014-09-11 17:23:59 -04:00
Rohit Nirmal
9f82df0364 Move "using namespace ArmGen" from headers to sources. 2014-09-11 16:46:43 -04:00
Fiora
18d83a310e X64Emitter: support shorter mov reg, imm opcodes
Also refactor WriteNormalOp a little bit and add comments.
2014-09-11 11:40:30 -07:00
Lioncash
b06ec302d1 Remove some unnecessary semicolons 2014-09-11 13:05:31 -04:00
Pierre Bourdon
c6f3424ab1 Merge pull request #1056 from phire/IsMMIOAddress
Fix IsMMIOAddress Check.
2014-09-11 10:57:23 +02:00
Scott Mansell
784d3937dd Fix IsMMIOAddress Check. 2014-09-11 19:12:34 +12:00
comex
42acd61ccb Fix warnings. 2014-09-11 01:55:43 -04:00
comex
cd4d82f065 Merge pull request #1053 from FioraAeterna/xchg
JIT: use XCHG in MOVTwo
2014-09-11 01:21:24 -04:00
Fiora
5726e0cdfb JIT: use XCHG in MOVTwo
Roughly the same speed or slightly faster depending on CPU; mostly just cleaner
since we don't have to pass in a temp.
2014-09-10 22:17:38 -07:00
Ryan Houdek
b8d4834cb1 Fix the return value of PPCAnalyst.
In situations where conditional continue isn't supported + if a JIT doesn't implement a instruction that has the FL_ENDBLOCK flag. This would cause an
infinite loop.
In reality all the JITs should implement every FL_ENDBLOCK instruction regardless, but JITIL doesn't implement tw/twi which are FL_ENDBLOCK
instructions.
2014-09-10 21:33:17 -05:00
skidau
67f7e7e28b Merge pull request #1040 from RachelBryk/movie-cleanup
Movie cleanup
2014-09-11 11:47:55 +10:00
Ryan Houdek
44baab30cf Include a missing include in the ARM emitter's common code. 2014-09-10 20:39:19 -05:00
Ryan Houdek
581c81ce1c Merge pull request #1050 from Sonicadvance1/AArch64-sign-extend
Add sign extending aliases to the ARM64Emitter.
2014-09-10 20:17:50 -05:00
Ryan Houdek
24f6c98a55 Add sign extending aliases to the ARM64Emitter. 2014-09-10 17:52:54 -05:00
Pierre Bourdon
eea9be6dc1 Merge pull request #1049 from rohit-n/extra-semicolon
Remove extra semicolons at the ends of some lines.
2014-09-10 19:10:55 +02:00
Rohit Nirmal
c0f7cab3f5 Remove extra semicolons at the ends of some lines. 2014-09-10 12:17:38 -04:00
Ryan Houdek
71cb09f1ca Merge pull request #1027 from rohit-n/change-include
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Rachel Bryk
08db8c646b Cleanup Movie.h/cpp. 2014-09-09 21:23:54 -04:00
Rachel Bryk
571727a5ad Mass rename static variables to s_*. 2014-09-09 21:22:32 -04:00
skidau
90a5171151 Merge pull request #1009 from FioraAeterna/removedeadmerge
JIT: remove op merging code that served no purpose
2014-09-10 11:13:53 +10:00
Fiora
b3a57ff396 JIT: remove op merging code that served no purpose
Dolphin already tracks propagation of immediates, so this code didn't really do
anything useful.
2014-09-09 18:09:23 -07:00
skidau
d1439bc1db Merge pull request #1041 from RachelBryk/kill-g_CoreStartupParameter
Kill Core::g_CoreStartupParameter.
2014-09-10 11:00:42 +10:00
Ryan Houdek
16f054db47 Merge pull request #1033 from Sonicadvance1/fix-android-x86_64
Fix building x86_64 on Android.
2014-09-09 18:52:27 -05:00
Lioncash
9601f5ec5f DiscIO: Get rid of some casts and a c_str call in VolumeDirectory 2014-09-09 19:01:20 -04:00
Lioncash
b34f2a78f5 DiscIO: Simplify GetUniqueID in VolumeDirectory 2014-09-09 18:57:45 -04:00
Linktothepast
b32bfdfddb Gameini cleanup.
This is a cleanup of the gameini database. Specifically:
It removes the "Issues=..." lines and their respective comments since
they don't show up in the gui, are very old and wrong in most cases.
They contain probably more than 4 year old comments (i don't have a clue
who or when wrote them).
Also remove the "EFBCopyCacheEnable = True" lines from the database.
These were put at a time that efb to Ram had resolution issues without
cache being enabled, safe texture cache could be disabled and speed was
detrimental. Now that efb to ram doesn't have the same res issues as
back then, safe texture cache can't be disabled with speed gains being
non existent (you get even a speed hit if texture cache is put to safe)
i think it should be removed from the database.
2014-09-09 16:07:03 +03:00