Commit graph

218 commits

Author SHA1 Message Date
Unknown W. Brackets
09e307b097 arm64jit: Update rounding mode on thread switch.
Since fcr31 is per-thread, we must update jit state when it changes.
This also fixes the rounding mode on load state and jit/interp switch.
2018-04-01 10:12:32 -07:00
Unknown W. Brackets
8ffb0101fe jit: Report blocks with uneaten VFPU prefixes.
There may be options to avoid, like continuing these blocks, especially if
they're likely or something.
2018-01-01 08:38:10 -08:00
Henrik Rydgård
c55847a79e Fix typo causing #10408 2017-12-14 00:23:07 +01:00
Henrik Rydgård
0207739d76 Can't call functions through known-nil pointers, even if they don't touch local data - LLVM's optimizer might have done something stupid. 2017-11-30 01:07:03 +01:00
Unknown W. Brackets
3dacd323c8 x64: Avoid clobbering jr dest in cases. 2017-07-08 16:40:06 -07:00
Unknown W. Brackets
79a6690a30 x64: Fix coreState rip checks. 2017-07-08 16:39:26 -07:00
Henrik Rydgård
567937fa4d x64: Enable non-RIP addressing for FPU registers 2017-07-07 11:33:07 +02:00
Henrik Rydgård
cfa7c61651 More RIP removal. Also add some comments to make it easy to just search for "M(&" to find remaining offenders. 2017-07-07 11:33:06 +02:00
Henrik Rydgård
0743334946 Guess what? More RIP elimination (but keep the fast path too) 2017-07-07 11:33:05 +02:00
Henrik Rydgård
7c3b37c561 More RIP elimination 2017-07-07 11:33:05 +02:00
Henrik Rydgård
d82f90f1b2 More RIP removal 2017-07-07 11:33:05 +02:00
Henrik Rydgård
f44f7472e5 Remove more RIP addressing 2017-07-05 13:27:38 +02:00
Henrik Rydgård
99d23fb021 X64/X86: Even more use of the context register 2017-07-05 13:21:35 +02:00
Henrik Rydgård
730e9ced6c X86/X64: We have the context register loaded, let's use it more. 2017-07-05 13:12:42 +02:00
Henrik Rydgård
c4db0a2311 x64: Use context register to access saved_flags 2017-07-05 12:45:56 +02:00
Henrik Rydgård
0ec1e5e3b2 Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 2017-05-26 15:48:03 +02:00
Henrik Rydgard
c1f9f96621 Minor code formatting in x86 Jit 2017-02-04 14:34:39 +01:00
Henrik Rydgård
635b2ada43 Remove a function that didn't make a lot of sense. 2017-01-26 09:50:16 +01:00
Florent Castelli
8c3552de74 cmake: Detect features at compile time
Instead of relying on manually passed down flags from CMake,
we now have ppsspp_config.h file to create the platform defines for us.
This improves support for multiplatform builds (such as iOS).
2016-10-19 12:31:19 +02:00
Henrik Rydgard
4e5f1e2797 Fix block linking with W^X mode 2016-08-28 18:54:14 +02:00
Henrik Rydgard
b264657d56 Implement W^X-compatible path. Works on Windows and Android, hopefully iOS (untested).
Disabled block linking in this mode, can re-enable with some more work later.

To enable W^X on other platforms than iOS, simply change PlatformIsWXExclusive.
2016-08-28 14:52:08 +02:00
Unknown W. Brackets
9972e5b10a Debugger: Allow logging on CPU breakpoints. 2016-08-04 12:39:29 -07:00
Henrik Rydgard
12edfcea5a Enough to run cpu_alu.prx. 2016-05-07 21:00:30 +02:00
Henrik Rydgard
4acf85aa06 It's kind of starting to run 2016-05-07 17:37:19 +02:00
Henrik Rydgard
49a6a2f6cf Minor refactor - let's not access a global when we don't need to 2016-05-06 21:22:36 +02:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgard
5aadce59a2 Move architecture-specific code out of JitBlockCache 2016-05-01 11:39:58 +02:00
Henrik Rydgard
b998131581 Move the symbol map to the heap, deallocate it when no game is running. 2015-10-31 23:01:19 +01:00
Henrik Rydgard
aa584d1992 x86 32-bit buildfix 2015-10-24 11:10:14 +02:00
Henrik Rydgard
b7db15225f x64 disasm: properly symbolize rip-relative addresses 2015-10-24 10:37:01 +02:00
Henrik Rydgard
92f7f459dc Not safe to change the rounding mode function pointer in GenerateCode 2015-10-10 16:46:07 +02:00
Henrik Rydgard
1ddb508542 Improve x86 disassembly (a few symbols) 2015-10-10 13:05:17 +02:00
Henrik Rydgard
d628b9b57b Minor fixes, mostly comments 2015-10-10 10:03:34 +02:00
Henrik Rydgard
7fee5abf9f x86/x64: Don't use a separate code block for pregenerated functions, just like on ARM 2015-10-08 22:15:28 +02:00
Henrik Rydgard
c41baab747 Pregenerate code to handle rounding mode switches. This time, for all three cores. 2015-10-08 19:58:37 +02:00
Henrik Rydgard
bfed830f91 Remove the ability to disable rounding mode support. It's time. 2015-10-08 14:54:42 +02:00
Henrik Rydgard
6dd86cd843 Get rid of the ForceFlushToZero hidden config option 2015-10-08 14:54:41 +02:00
Henrik Rydgard
68fc776fa7 Work around some crashes I got trying to load a GTA:LCS savestate from 2014.
However, the savestate still loads to a black screen, although background audio is working.
2015-10-04 10:34:15 +02:00
Henrik Rydgard
aaa8350591 Windows: Fix some remaining ASLR issues 2015-07-15 22:25:24 +02:00
Unknown W. Brackets
8fdceba7ca Add timing for all the basics.
This way we can see overall stats for a frame.
2015-07-03 12:05:08 -07:00
Henrik Rydgård
70fa830ba5 Split out the ReplaceJalTo test logic.
This makes it so the IR, in the future, can work correctly for
replacements.
2015-04-12 13:35:10 -07:00
Henrik Rydgård
d014d420db Unify JitOptions across the backends.
This is required to make ExtractIR not a member of the various backends.
2015-04-12 11:41:26 -07:00
Henrik Rydgård
81dec36da8 Use an accessor to read the compilerPC.
In the IR it will be read from the block.
2015-04-11 01:14:37 -07:00
Henrik Rydgård
a897723e6a Separate out jit reading nearby instructions.
This makes it easier to use an IR for these things, or remove them.
2015-04-11 00:53:24 -07:00
Unknown W. Brackets
9d52ee4e21 Fix cases where breakpoints were skipped.
After reset or savestate load.
2015-03-17 23:06:25 -07:00
Chin
37f50a3792 Change to pass some arguments by reference 2015-03-01 16:49:00 +01:00
Henrik Rydgard
07933cad42 Revert "Minor optimizations, add a failsafe"
This reverts commit 48e4d1edae.
2015-01-22 19:52:58 +01:00
Henrik Rydgard
48e4d1edae Minor optimizations, add a failsafe 2015-01-20 20:08:12 +01:00
Unknown W. Brackets
9cb1151b67 x86jit: Disable replacements w/ breakpoints inside.
This does alter graphics (memcpys won't fire anymore), but it also means
breakpoints work which is nice.
2015-01-18 21:26:37 -08:00
Unknown W. Brackets
5f6f8ac0a2 x86jit: Fix another sequential detect problem.
Arg.  Maybe should use voffset after all, but it won't fit in a u8
anyway...
2014-12-31 22:43:31 -08:00