Unknown W. Brackets
b2798c7ada
jit: Add more reasonable estimates for RX protect.
2022-11-20 10:55:35 -08:00
Unknown W. Brackets
3df6cb704f
Global: Fix some type conversion warnings.
...
Hidden by some warning disables.
2022-01-30 16:09:33 -08:00
Unknown W. Brackets
4178f09e57
Build: More consistently avoid _M_ defines.
...
We use PPSSPP_ARCH in several places already, this makes it more complete.
2021-03-02 21:49:21 -08:00
Unknown W. Brackets
f32f89dd90
Global: Remove some unused variables.
2021-02-15 11:59:45 -08:00
Henrik Rydgård
6b4356a060
Handle exec addr errors better - don't let IgnoreBadMemoryAccesses skip dispatcher exceptions.
...
It would then just fall through into the compiler and die.
Should remove one of the "mystery" crashes from #14082 .
2021-02-09 09:32:38 +01:00
Henrik Rydgård
9e41fafd0d
Move math and some file and data conversion files out from native to Common.
...
Buildfixing
Move some file util files
Buildfix
Move KeyMap.cpp/h to Core where they belong better.
libretro buildfix attempt
Move ini_file
More buildfixes
2020-10-04 09:12:46 +02:00
Henrik Rydgård
c5e0b799d9
Remove category from _assert_msg_ functions. We don't filter these by category anyway.
...
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Henrik Rydgard
c988d42b04
ARM/ARM64 instruction analysis, hook up to handler
2020-07-14 09:25:45 +02:00
Unknown W. Brackets
4c3fe47372
jit: Remove unused breakpoint code.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets
ab809bd19e
jit: Apply hasSetRounding at compile time.
...
Otherwise, the block will be executed with the wrong rounding mode the
first time rounding is set. This could be important if it was set for a
single operation.
This is only a problem the first time it's set.
2018-04-01 10:36:16 -07: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
7c3b37c561
More RIP elimination
2017-07-07 11:33:05 +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 Rydgard
ff2b6b3fca
Assorted cleanup, UWP memory map fixes. PSPFlower runs in both 32-bit and 64-bit.
2017-03-23 10:02:28 +01: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
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
492ea5fac4
Address a bunch of comments, thanks for the review
2016-05-08 21:38:03 +02:00
Henrik Rydgard
12edfcea5a
Enough to run cpu_alu.prx.
2016-05-07 21:00: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
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
Unknown W. Brackets
2743c5cacd
x86jit: Shave off a couple bytes in asm.
2014-12-17 08:25:18 -08:00
Unknown W. Brackets
77777e372d
x86jit: Use R15 when safe for the jit.
...
This is virtually always safe.
2014-12-17 08:09:59 -08:00
Unknown W. Brackets
9022b48069
x86jit: Skip reload of EAX in safe cases.
...
Probably no real improvement in perf, but a bit cleaner and one less TODO.
2014-12-17 01:12:41 -08:00
Unknown W. Brackets
afdbf5610b
jit: Use nicknames for a few more static regs.
2014-12-17 01:11:33 -08:00
Unknown W. Brackets
b6a75bf255
x86jit: Set CTXREG in a fixed place.
2014-12-17 01:00:21 -08:00
Henrik Rydgard
05a8e2e35d
Some work towards being able to build two JITs together
...
This will be useful for testing/debugging, but not there yet.
2014-12-13 21:13:54 +01:00
Henrik Rydgard
8ad1ea4c84
Split JitCommon.h so that you can include it without getting the "NativeJit" definition
2014-12-13 21:13:28 +01:00
Unknown W. Brackets
928e2adfc9
jit: Avoid applying/restoring the rounding mode.
...
If the game never sets it, we can skip around syscalls, interpreter,
replacements, etc.
2014-10-12 12:51:45 -07:00
Unknown W. Brackets
8d0dca71fe
jit: Rename the rounding mode funcs to clarify.
...
They apply/restore the value, set/clear is confusing.
2014-10-12 11:35:20 -07:00
Henrik Rydgard
8177b4c43b
Avoid an ifdef using PTRBITS
2014-10-12 19:35:55 +02:00
Henrik Rydgård
eab010a0c0
x86 JIT: Sacrifice a register for a pointer to the MIPS context. Shrinks emitted x86 code considerably.
...
Nice in 64-bit, but might be a bit too much in 32-bit though... Needs testing.
2014-10-12 19:35:55 +02:00
Henrik Rydgård
f99c2cd010
x86 Jit: Generate nicer code for some cases of addiu
2014-10-12 17:47:53 +02:00
Unknown W. Brackets
4210ba44eb
Clean up a few more ImmPtr() cases.
2014-09-21 08:34:27 -07:00
Andrew Church
5816685668
Handle the FS (flush-to-zero) bit in FCR31 for x86 JIT.
2014-09-04 01:50:24 +09:00
Unknown W. Brackets
925557ed47
x86jit: Maintain the rounding mode always.
...
This should be less often than doing it per block that uses fpu, unless
the game doesn't use fpu much at all.
2014-08-22 09:53:00 -07:00
Unknown W. Brackets
2347498667
x86jit: Use templates to avoid some void * casts.
...
Makes it a bit cleaner and potentially safer.
2014-01-18 09:57:13 -08:00
Henrik Rydgard
2eab4aa1bf
Play around with function replacement. Turned off by default of course.
2013-12-17 23:40:27 +01:00
Henrik Rydgård
598e06faa8
Make Home in the game browser available on linux/mac/etc too.
...
Misc tweaks.
2013-10-21 12:21:22 +02:00
Henrik Rydgard
2a39a3b972
JIT: Get rid of one memory access per dispatch, and get rid of blockcodepointers.
2013-04-27 01:32:03 +02:00
Henrik Rydgard
724a600381
Buildfix android, misc other fixes, some include cleanup
2013-03-29 20:55:32 +01:00
Unknown W. Brackets
3fbb5d4388
Avoid using CALL() directly in case of far calls.
...
This mainly matters for x64.
2013-02-24 00:12:55 -08:00
Unknown W. Brackets
c1757ee166
Check downcount in jit after a syscall.
2013-01-23 22:25:35 -08:00
Unknown W. Brackets
8438371941
Read memory in the jit dispatcher same as lw.
...
Just for consistency. One less op, maybe faster, probably same.
2013-01-21 17:51:14 -08:00
Henrik Rydgard
76481a300c
Icache must be invalidated. Jit now starts to run, but there's no cube in cube.elf!
2013-01-08 23:52:11 +01:00
Henrik Rydgard
8915677241
More progress but it weirds out...
2013-01-08 21:24:42 +01:00
Henrik Rydgard
b3fd1ff34c
Lots of various work on the ARM jit. It executes a couple of blocks now.
2013-01-08 13:49:52 +01:00