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
b4740a2bca
Fix bug where dispatcher would not check core state directly after Advance. Fixes #9398 properly (it was previously hidden somehow with extra backbuffer binds).
2017-03-14 12:32:20 +01:00
Henrik Rydgård
c4bac2d379
ABI: Switch to paired load/stores of floats too
2017-01-27 14:56:38 +01:00
Henrik Rydgård
e1bae9aa67
Follow the ARM64 ABI better (update the frame pointer).
2017-01-27 14:19:03 +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
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
Henrik Rydgard
323eb72b7c
Write-protect the dispatcher on all platforms.
2016-08-28 13:35:27 +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
65ee3723d3
ARM64: Don't update currentRoundingFunc unless necessary.
2015-10-10 14:33:01 +02:00
Henrik Rydgard
70239f1611
Fix another rounding bug. ARM64 passes the fpu test again.
2015-10-10 13:30:30 +02:00
Henrik Rydgard
a6294f3e2d
Now the three backends actually do the same thing with rounding. Fixes a bug in the x86 backend, too.
2015-10-10 13:11:38 +02:00
Henrik Rydgard
30555f31ca
ARM64 typo fix. Add a couple of worrying comments...
2015-10-10 11:56:59 +02:00
Henrik Rydgard
b2b5f3424f
Fix for 32-bit ARM
2015-10-08 23:11:57 +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
b7725c4f40
Remove empty header files
2015-10-08 18:54:33 +02:00
Henrik Rydgard
42ce836ba5
Some minor renames and cleanups
2015-10-08 14:43:16 +02:00
Henrik Rydgard
d1bbc1d3c0
More regcache fixes. ML_IMM works now although there is another stability issue somewhere.
2015-07-11 16:59:13 +02:00
Henrik Rydgard
9af6abd8a1
ARM64: Support pointerified static allocs, statically allocate SP
2015-07-11 16:59:10 +02:00
Henrik Rydgard
844a3f19a9
Fix bugs and issues in ARM64 static alloc. Thanks unknown for finding the problem.
2015-07-11 16:59:09 +02:00
Henrik Rydgard
a0bf934796
ARM64: Some work on static allocation. Close to working, cube.elf runs 700 blocks but then hangs (?!)
2015-07-11 16:59:09 +02:00
Henrik Rydgard
7011758e83
Move misplaced FlushIcache() in Arm64Asm.cpp
2015-07-05 10:03:52 +02:00
Unknown W. Brackets
66d85233b9
arm64: Flush only caller-saved regs before calls.
2015-07-03 10:09:43 -07:00
Unknown W. Brackets
b6612edf67
arm64: Use a cached rounding func for cvt.w.s.
...
This is much faster for this particular instruction, although not all
games even use it.
2015-06-28 12:40:29 -07:00
Henrik Rydgard
e848247f88
ARM64: Also save FP registers around the JIT dispatcher loop
2015-06-14 13:03:46 +02:00
Henrik Rydgard
2c05334d47
ARM64: Fix bug where we didn't save the FP registers correctly in the vertex decoder.
...
Also port a few ops from dolphin's ARM64 emitter.
2015-06-14 12:56:44 +02:00
Henrik Rydgard
6cb107d6fc
ARM64: Fix LDP disassembly
2015-04-06 18:13:25 +02:00
Henrik Rydgard
a12e448fb4
ARM64: Stub vertex decoder jit, implementing just enough for the cube.elf cube.
2015-04-06 18:13:18 +02:00
Henrik Rydgard
4233921ab7
ARM64: Some more instructions, func replacements
2015-04-06 18:13:16 +02:00
Henrik Rydgard
77501e220d
ARM64: Enable a few more instructions, more emitter/disasm unittests
2015-04-06 18:13:13 +02:00
Henrik Rydgard
8dc77ff32e
ARM64: Turn off some debugging stuff, start implementing instructions. Something is wrong though, if I implement more than addiu things break..
2015-04-06 18:13:09 +02:00
Henrik Rydgard
58b059ca14
Some casting cleanup, misc
2015-04-06 18:13:06 +02:00
Henrik Rydgard
34ab532971
ARM64 jit: Fix some pointer truncations and other fun stuff..
2015-04-06 18:13:05 +02:00
Henrik Rydgard
e7e58591da
More JIT work, not quite there yet...
2015-04-06 18:13:04 +02:00
Henrik Rydgard
524583d53e
ARM64 emitter work, dispatcher work, etc. More work needed.
2015-04-06 18:13:03 +02:00
Henrik Rydgard
8945b2476d
Add the beginnings of a rudimentary ARM64 disassembler
2015-04-06 18:13:03 +02:00
Henrik Rydgard
b309c83973
Initial work on ARM64, based on the ARM jit.
2015-04-06 18:13:01 +02:00