Commit Graph

5311 Commits

Author SHA1 Message Date
skidau
3b07fe01a2 Merge pull request #1982 from skidau/AGP-hash
Advance Game Port (AGP) fixes
2015-01-31 12:34:01 +11:00
Ryan Houdek
a277172b49 Merge pull request #1980 from Sonicadvance1/AArch64_more_optimizations
[AArch64] Minor optimizations
2015-01-30 08:33:19 -06:00
Ryan Houdek
7cd80200ed [AArch64] Remove an extraneous nop in 8bit fastmem stores. 2015-01-30 08:30:17 -06:00
Ryan Houdek
4ff2f105cc [AArch64] Implement MMIO Writes. 2015-01-30 08:30:11 -06:00
Lioncash
b1547b9c8b Use unique_ptr for some IVolume instances 2015-01-29 21:33:19 -05:00
skidau
ccc1e9aa65 Changed the hash array to a CRC8 function. 2015-01-30 13:33:17 +11:00
skidau
855ad6f1d3 Fixed an overflow bug in Jit64. 2015-01-30 13:00:23 +11:00
skidau
a42fb80f6a Added a hash key finder.
Fixed the memcard and AGP path parsing in Windows (the code is expecting '/' to be used as the DIR_SEP).
2015-01-30 13:00:23 +11:00
skidau
83a9f1b850 Merge pull request #1972 from lioncash/ref
EXI_DeviceAGP: Pass string by reference
2015-01-30 12:58:26 +11:00
Ryan Houdek
9b4a896353 Remove an old outdated comment that makes no sense.
This comment was left over from a long time ago. It is no longer true.
2015-01-29 09:40:22 -06:00
Ryan Houdek
631c8a981e [AArch64] Minor performance improvements to paired stores.
We can combine these two ST1 calls in to a single ST1 call.
Saves a few cycles in paired stores
2015-01-29 06:07:00 -06:00
Ryan Houdek
235f6c2445 [AArch64] Don't flush VFP register to stack when not needed. 2015-01-29 06:07:00 -06:00
Ryan Houdek
c8c062fa96 [AArch64] Add support for MMIO loads.
Should give a small performance benefit.
2015-01-29 06:06:54 -06:00
Markus Wick
109fa8c2c8 Merge pull request #1800 from randomstuff/jit-register
Add support of more JIT-compiled code for profiling
2015-01-28 13:23:32 +01:00
Gabriel Corona
c3777bbd69 JitRegister: TrampolineCache 2015-01-28 10:41:45 +01:00
Gabriel Corona
329834f653 JitRegister: JitAsm 2015-01-28 10:41:03 +01:00
Gabriel Corona
3c14930a0a JitRegister: JitAsmCommon
Allows profiling/debugging tools to know about JITed code.
2015-01-28 10:40:05 +01:00
Gabriel Corona
a957f93532 Use printf-like format in JitRegister::Register
The API is cleaner (no more magic default parameter) and more
extensible like this.
2015-01-28 09:47:08 +01:00
Tillmann Karras
257deb7886 CoreTiming: fix warning 2015-01-28 08:27:14 +01:00
Lioncash
7dc5bc622f EXI_DeviceAGP: Pass string by reference 2015-01-27 10:15:27 -05:00
Markus Wick
43605f8716 Merge pull request #1948 from magumagu/remove-efb-cache
Remove EFB to RAM cache, and simplify code.
2015-01-27 09:42:15 +01:00
skidau
c20ef8bb8c Merge pull request #1919 from skidau/AGP
Added support for AGP. Original patch by GreyRogue.
2015-01-27 13:25:14 +11:00
Ryan Houdek
983c7f4f21 [Android] Select the AArch64 recompiler core by default if shown to support ARMv8. 2015-01-26 00:50:25 -06:00
Ryan Houdek
5ba1319abb Merge pull request #1953 from Sonicadvance1/AArch64_fix_paired_loadstores
[AArch64] Fix all of the paired store instructions.
2015-01-25 23:07:44 -06:00
Ryan Houdek
c340a324bc Merge pull request #1947 from Sonicadvance1/AArch64_tu_tl_merge
[AArch64] Implement TU/TL merging.
2015-01-25 23:07:32 -06:00
Rohit Nirmal
51b27c5481 Fix building with PCH disabled. 2015-01-25 21:40:31 -06:00
Ryan Houdek
3274df7158 Merge pull request #1961 from Sonicadvance1/AArch64_game_fixes
[AArch64] Fix a load of games.
2015-01-25 18:26:42 -06:00
Ryan Houdek
b1fc18cbaa Merge pull request #1958 from Sonicadvance1/Rearchitect_asmcommon
Rearchitect a bit of our AsmCommon routines.
2015-01-25 18:26:17 -06:00
Ryan Houdek
d291148016 [AArch64] Implement TU/TL merging.
Basically stolen from the x86 recompiler. Works well on AArch64 as well!
2015-01-25 18:05:33 -06:00
Ryan Houdek
f24c466e7e [AArch64] Fix AArch64 instruction encoding. 2015-01-25 17:26:18 -06:00
Rohit Nirmal
d10b4d9b8b Fix building with PCH disabled. 2015-01-25 11:34:22 -06:00
Ryan Houdek
e4e08b0596 [AArch64] Make sure to load the full destination register on float instructions.
With the float instructions that only affect the lower 64bits of the destination register, we need to make sure to load the full 128bit register.
This ensures that we aren't saving garbage in to the top 64bits.
2015-01-25 03:17:46 -06:00
Ryan Houdek
2483f7b359 [AArch64] Fix addcx. 2015-01-25 03:17:14 -06:00
Ryan Houdek
6791a808b6 [AArch64] Fix addzex. 2015-01-25 03:16:57 -06:00
Ryan Houdek
84b90ad1c6 [AArch64] Fix cmp 2015-01-25 03:16:29 -06:00
Ryan Houdek
12b9ada268 Rearchitect a bit of our AsmCommon routines.
JitCommon is becoming a cluster of x86 specific things and things that are common to multiple recompilers.
This overlap is beginning to cause us issues.

Begin by breaking out the common ASM arrays to have their own file and move the x86 specific routines to their own folder.
2015-01-24 20:06:15 -06:00
Tony Wasserka
43036af944 Merge pull request #1812 from phire/real_zfreeze
Add proper zfreeze support.
2015-01-24 13:29:57 +01:00
Ryan Houdek
93f3816eae [AArch64] Fix all of the paired store instructions.
These had some minor errors in them that I discovered with the hardware test and Viewtiful Joe.
All work as they should now.
2015-01-23 23:18:49 -06:00
Dolphin Bot
4e9497cdb8 Merge pull request #1057 from phire/IsMMIOAddress2
Further improvements to IsMMIOAddress (Includes tests!)
2015-01-24 05:55:35 +01:00
Scott Mansell
fe28d1476a Make the IsMMIOAddress function easier to read, add tests.
This also makes IsMMIOAddress more restrictive.
2015-01-24 17:24:40 +13:00
Ryan Houdek
088b6b2ec3 Merge pull request #1081 from phire/jitil-float-mem-opts
JitIL Float load/store optimizations.
2015-01-23 21:47:03 -06:00
Scott Mansell
5c34766809 Propagate elf loading failure up.
Also fix mistake in error message.
2015-01-24 16:28:34 +13:00
Scott Mansell
3106b20fbe JITIL: Improve address calulation for float loads/stores.
For floating loads with a known address, this eliminates the pattern of:

   mov r12d, 80001014
   mov rdx, r12d
   mov rdx, dword ptr [rbp+rdx]

and generates a nice simple:

   mov rdx, dword ptr [rbp+00001014]
2015-01-24 16:08:50 +13:00
Scott Mansell
b7d4ff679a IsWiiElf: Optimise inner loop.
Instead of swaping each word of the elf code section(s) looking
for a match to our pattern, we swap the pattern just once (at
compile  time) and test against our swapped pattern.
2015-01-24 15:41:32 +13:00
Scott Mansell
2bf052d8b9 ElfReader: Clean up elf loader code.
* Don't claim to support any features we don't, like relocation
 * Actually zero-out BSS sections, as memory might not be already
   zeroed.
 * Deleted commented out code.
 * Removed GetPointer, updated to more modern interface methods.
 * Updated pointer types style from "u32 *x" to "u32* x"
2015-01-24 15:41:32 +13:00
Scott Mansell
1e5762b163 BootUp: Clean up elf BootUp code.
* The file already exsists, otherwise we wouldn't have gotten
   this far in the boot.
 * We have already checked if it's a Wii or GameCube elf,
   besides, it's too late to change our minds now anyway.
 * On Wii - Don't call EmulatedBS2, it can never succeed as
   it knows nothing about booting elfs. Just call the
   SetupWiiMemory directly if needed.
 * On GameCube - We still call EmulatedBS2_GC, but we stop
   it from running Apploader, which might boot something
   unexpected from the default iso or DVD root folder.
2015-01-24 15:41:28 +13:00
Scott Mansell
2642c3f73b BootElf: Use unique_ptr<u8 []> instead of vectors. 2015-01-24 15:32:38 +13:00
skidau
f1a4b98d36 Merge pull request #1879 from magumagu/idle-exception-check
For idle loops, perform an exception check before CoreTiming::Advance.
2015-01-24 12:28:44 +11:00
skidau
7dafad5a8b On DCBZ, mask the memory address to ensure that the address is within physical memory. The AGP disc DCBZ's against an out of bounds physical address. 2015-01-24 12:19:33 +11:00
skidau
8a561b57c3 Added EEPROM saving to file. 2015-01-24 12:15:48 +11:00