7808 Commits

Author SHA1 Message Date
degasus
d3aee2de08 JitCache: Split off JIT call from dispatcher.
This avoid flushing the BLR optimization stack on fast_block_cache misses.
2017-01-25 01:51:19 +01:00
JosJuice
8475b03bd8 ConfigManager: Always set a valid m_region
Fixes a regression from f85266d that made WADs
with no detectable region not boot correctly.
The non-WAD code was already handling this correctly.
2017-01-24 16:34:08 +01:00
booto
3ba388138d Set up IOS RAM information area with real values. 2017-01-24 09:48:21 -05:00
Lioncash
ed627a8cff DSPAssembler: Replace malloced output buffer with std::vector
Same thing, less manual memory management.
2017-01-23 22:03:40 -05:00
Florent Castelli
a7bf9271b5 Fix missing includes 2017-01-24 03:31:51 +01:00
Matthew Parlane
f70a1a27fa Merge pull request #4726 from ligfx/addingwindowsheaders
Fix building without PCH on Windows
2017-01-24 13:47:36 +13:00
Michael Maltese
0bc40cacda No longer need to //clang-format off for Windows headers 2017-01-23 16:23:37 -08:00
EmptyChaos
49873b1287 MMU/PatchEngine: Fix potential crash during stack probe
TryReadInstruction doesn't validate the address it resolves, that
can result in Memory::GetPointer failing and returning nullptr
which then leads to a nullptr dereference and a crash.

Created PowerPC::HostIsInstructionRAMAddress which works the same
way as PowerPC::HostIsRAMAddress for the IBAT.
2017-01-24 08:05:11 +11:00
degasus
7f6b8e3555 JitCache: Extract ErasePhysicalRange as function. 2017-01-23 20:33:44 +01:00
degasus
70caf447b9 JitCache: Get physical addresses from PPCAnalyst.
So we support all kind of degenerated blocks now, not just range+length based ones.
2017-01-23 20:33:44 +01:00
degasus
3529af61c4 JitAnalyzer: Remove jit block cache workaround. 2017-01-23 20:33:44 +01:00
degasus
f3ed993747 JitCache: Use a map with macro blocks for the occupied memory regions.
This also allow fast invalidation, without any restritions on the blocks itself.
So we can now implement inlining.
2017-01-23 20:33:44 +01:00
degasus
dc0fbc15f0 JitCache: Drop block_map.
It is only used for invalidation, and in a bad way. Just scan over all elements,
as it is still in O(n), this shouldn't matter much.
2017-01-23 20:33:44 +01:00
Léo Lam
0d8ddfb7d9 TMDReader: Add a way to get the required IOS version 2017-01-23 17:44:24 +01:00
Markus Wick
1c854f2daa Merge pull request #4727 from lioncash/enum-class
VideoBackendBase: Convert EFBAccessType and FieldType into enum classes
2017-01-23 17:14:06 +01:00
Lioncash
fd772f6726 ES: Move the key table into the cpp file
This is a static implementation detail, so there's no need to bind it to the class directly.

This also makes the tables read-only.
2017-01-23 08:16:28 -05:00
Markus Wick
c0e8280240 Merge pull request #4706 from lioncash/dspasm
DSPAssembler: Minor cleanup
2017-01-23 12:12:01 +01:00
Markus Wick
4436011c50 Merge pull request #4725 from lioncash/attachments
Attachments: Minor cleanup
2017-01-23 10:55:04 +01:00
Lioncash
34768617d2 Attachment: Make constructors explicit where applicable 2017-01-23 04:42:27 -05:00
Lioncash
34262ee3d8 Attachment: Move implementation details into the cpp file 2017-01-23 04:42:26 -05:00
Lioncash
c87ee2a00e Attachment: Use std::array over C arrays 2017-01-23 04:42:21 -05:00
Michael Maltese
713ec5ffd5 Add includes for building on Windows without PCH 2017-01-23 01:37:41 -08:00
Lioncash
940aa6f32d VideoBackendBase: Convert FieldType into an enum class 2017-01-23 03:54:01 -05:00
Lioncash
5b461f50af VideoBackendBase: Convert EFBAccessType into an enum class 2017-01-23 03:53:38 -05:00
Matthew Parlane
836f43038a Merge pull request #4722 from lioncash/si-device
SI_Device: Minor cleanup
2017-01-23 21:28:58 +13:00
degasus
819ebfb213 JitCache: Freeing hotfix.
Sorry, I'm too stupid to test my code.
2017-01-23 06:58:02 +01:00
Markus Wick
9cd34c7985 Merge pull request #4717 from degasus/arm
JitArm64: Fix dcbz.
2017-01-23 06:32:11 +01:00
Lioncash
4b2f40a634 Attachment: Make class members non-public 2017-01-22 23:53:13 -05:00
Lioncash
fbcf86870d SI_Device: Remove const specifiers from SIDevice_Create declaration's parameters
These are only relevant on the definition of the function.
2017-01-22 22:34:23 -05:00
Lioncash
0adb0dfeef SI_Device: Move implementation details into the cpp file
Any changes to the base class' default behavior now won't require
all SI device source files to be recompiled.
2017-01-22 22:33:27 -05:00
Lioncash
fb8f19f553 SI_Device: Amend variable naming 2017-01-22 22:20:16 -05:00
Lioncash
f41e5eac2e SI_Device: Move protected interface below public interface 2017-01-22 22:10:43 -05:00
Lioncash
7f4ef74542 SI_Device: Move the null device implementation to its own source files 2017-01-22 21:18:51 -05:00
degasus
a19993c2a0 JitArm64: Fix dcbz.
This fixes the hidden wall in xenoblade.
2017-01-23 00:26:38 +01:00
Matthew Parlane
ba5c3f4c46 Merge pull request #4582 from iwubcode/per_game_wii_lang
Add support for specifying the GC/Wii system language per-game
2017-01-23 11:51:37 +13:00
Matthew Parlane
ef7a809fad Merge pull request #4678 from degasus/jitcache
JitCache: Store the JIT blocks in the std::map.
2017-01-23 11:49:46 +13:00
iwubcode
a7a8e35823 Add support for specifying the GC/Wii system language per-game 2017-01-22 12:00:45 -06:00
Léo Lam
6291cd0bce IOS: STM: Save event hook to savestates
This allows a STM event hook to be saved and restored correctly and
fixes the power/reset button after loading a state in some cases.
2017-01-22 17:29:39 +01:00
degasus
8e00c411a3 JitCache::Rename iCache to fast_block_map.
iCache sounds too much like emulation.
2017-01-22 17:10:28 +01:00
degasus
830ae6a2c1 JitCache: Store the JitBlock in the std::map. 2017-01-22 16:50:46 +01:00
degasus
43cdbab515 Jit64: Add a switch for easier fallback to the C++ dispatcher. 2017-01-22 16:50:46 +01:00
degasus
9b77a39767 JitCache: Only call DestroyBlock on valid blocks. 2017-01-22 16:50:46 +01:00
degasus
113d6b3b84 JitCache: Use a multimap for block_map and start_block_map.
We may have duplicated entries here because of MSR mismatch. Just
store both and validate the matching one on cache access.
2017-01-22 16:50:46 +01:00
degasus
9d58127dec JitCache: Move JitBlock config variable. 2017-01-22 16:50:46 +01:00
degasus
352909fc4c JitCache: Track the ICache entry of jit blocks.
This guarantees that no invalidated jit block is still in the icache.
2017-01-22 16:50:14 +01:00
Lioncash
a97aef2e94 Jit: Eliminate JIT global usages 2017-01-22 06:01:30 -05:00
Lioncash
a18ab5e154 JitArm64_LoadStore: Eliminate JIT global usages 2017-01-22 05:59:38 -05:00
Lioncash
4601499179 JitArm64_LoadStoreFloating: Eliminate JIT global usages 2017-01-22 05:57:44 -05:00
Lioncash
b4e00115c5 JitArm64_Tables: Eliminate usages of the JIT global 2017-01-22 05:54:33 -05:00
Lioncash
b0605c24d3 JitIL_Tables: Eliminate usages of the JIT global 2017-01-22 05:43:40 -05:00