Commit Graph
272 Commits
Author SHA1 Message Date
Henrik Rydgård 7c3b37c561 More RIP elimination 2017-07-07 11:33:05 +02:00
Henrik Rydgård 102be8654f Remove RIP access from some matrix ops, SafeMem 2017-07-07 11:33:05 +02:00
Henrik Rydgård 2e9a9f2d7c Move mscxr_temp to MIPSState 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 78538ff61e Some code cleanup. More work towards removing RIP addressing 2017-07-07 11:33:04 +02:00
Henrik Rydgård f44f7472e5 Remove more RIP addressing 2017-07-05 13:27:38 +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 b0bd7e3c6f Minor changes for compatibility with VS2017 2017-03-12 17:33:00 +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
Unknown W. Brackets e65e794f28 x86jit: Fix vmmul of matrix with itself.
Was not SIMDing correctly.  Probably rare in practice.
2016-05-21 23:02:29 -07:00
Henrik Rydgard f544364c4a Fix bug in vus2i (thanks unknown), recognize vectors in IR disasm 2016-05-15 23:35:33 +02:00
Unknown W. Brackets e960158490 jit-ir: Add notes and report about vrot prefixes. 2016-05-15 14:08:59 -07:00
Unknown W. Brackets ab1461faca Add prefix handling to vfpu color conv per tests. 2016-05-15 13:16:03 -07:00
Henrik Rydgard 2cbfb192c4 IR: Lots more VFPU support, some with SIMD 2016-05-12 12:17:25 +02:00
Henrik Rydgard 45efcda6b1 IR: Some more VFPU 2016-05-10 21:50:08 +02:00
Unknown W. Brackets b818509734 x86jit: Fix clobbering address in lv.q/sv.q.
We can't let it go into EAX.  Hmm, maybe there's a cleaner way.
Should fix #7686.
2015-04-14 23:17:11 -07:00
Henrik Rydgård a1f5c537d4 Merge pull request #7672 from unknownbrackets/jit-minor
More x86jit micro optimizations for the FPU
2015-04-13 09:57:02 +02:00
Unknown W. Brackets 56f071d26a x86jit: Support SIMD load/store with fastmem off.
Which is a lot faster, since it usually takes the fast path.
2015-04-11 01:22:50 -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
Unknown W. Brackets 7ea9bcbc13 x86jit: Avoid mapping rs in vfpu load/store.
This allows immediate address load/store, when possible, which can be
faster (especially with slow mem enabled.)
2015-04-10 20:30:14 -07:00
Unknown W. Brackets bdd1db1fa2 x86jit: Handle vmin/vmax and vsge correctly.
Unfortunately, this boots vmin/vmax from simd, currently.
2015-03-29 12:24:49 -07:00
Unknown W. Brackets a27be3887e x86jit: Handle overlap better in simd vtfm. 2015-01-07 18:10:53 -08:00
Henrik Rydgård bb1d571493 Merge pull request #7261 from hilesaz/master
Fix simd vmmul transpose optimizations.
2015-01-06 11:59:14 +01:00
Unknown W. Brackets 23893ffba8 x86jit: Fix crash in prefixes and simd enabled. 2015-01-04 15:50:12 -08:00
Bovine 54c7a12306 Fix simd vmmul transpose optimizations.
Yep, gotta discard the S matrix when we're done with it.
2015-01-03 16:58:03 -07:00
Bovine 185d4db081 Fix simd vmmul transpose optimizations.
Need to ensure S has been written back before transposing it or we'll end
up writing back S'.
2015-01-03 14:48:54 -07:00
Henrik Rydgård 5fffe53671 Merge pull request #7258 from unknownbrackets/jit-minor
x86jit: Fix vavg, improve vfad
2015-01-03 19:44:22 +01:00
Unknown W. Brackets a1864b2c78 x86jit: Fix vavg scale.
Was completely wrong, darn it.
2015-01-03 10:39:58 -08:00
Unknown W. Brackets 8a089ee583 x86jit: Handle -0.0 in vavg/vfad.
Should result in a positive result.
2015-01-03 10:39:26 -08:00
Henrik Rydgard 13c4a22967 Disable transpose optimization, seems to break games 2015-01-02 01:13:34 +01:00
Henrik Rydgard 6a7e5d1cc2 x86 Jit SIMD: Generate somewhat shorter code for handling transposed matrices in vmmul.
TODO: Build into regalloc instead, with a MapMatrix function?
2015-01-01 12:44:03 +01:00
Unknown W. Brackets a514603f40 Fix some missing case warnings. 2014-12-20 09:10:09 -08:00
Unknown W. Brackets a292fa87ea x86jit: Fix an x32 compile error in disabled code. 2014-12-17 08:50:31 -08:00
Unknown W. Brackets afdbf5610b jit: Use nicknames for a few more static regs. 2014-12-17 01:11:33 -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 51d55bd645 Namespacing cleanup (it's bad to do "using namespace" in a header) 2014-12-07 14:44:15 +01:00
Henrik Rydgard 7740caeade Buildfix the arm emitter test in the unittest.
Also do some preparation for being able to have two JITs compiled at the same time
which may be useful in testing parts of the ARM jit on Windows.
2014-12-07 14:12:13 +01:00
Henrik Rydgard d46c9c2f74 x86 jit: Minor optimization in vmmul 2014-12-06 11:35:01 +01:00
Henrik Rydgard ea6371921a x86 jit: Hack around running out of regs on x86-32 with SIMD 2014-12-04 00:19:08 +01:00
Henrik Rydgard e3a81f4346 x86 Jit: Basic implementation of vbfy1/2 (mostly to just cross another one off the list..) 2014-12-04 00:18:58 +01:00
Henrik Rydgard 5290ffd929 Minor cleanup in vtfm. Re-enable vrot combination. Optimize vfad/vavg when dpps is available.
Also fixes bug in emitter of dpps.
2014-12-03 22:44:32 +01:00
Henrik Rydgard ca8ba9532c x86 jit: Implement vtfm 2014-12-03 01:45:29 +01:00
Unknown W. Brackets 515b954670 x86jit: Re-enable vmmov simd. 2014-11-30 13:06:53 -08:00
Henrik Rydgård 2945a1acc1 Merge pull request #7120 from unknownbrackets/jit-simd
x86jit: Add a MAP_NOLOCK flag
2014-11-30 19:43:35 +01:00
Unknown W. Brackets 29e3819437 x86jit: Improve spilling in vf2i.
This should improve which ones we spill on 32 bit at least.
2014-11-30 10:38:58 -08:00
Unknown W. Brackets 0000be1bb2 x86jit: Add a MAP_NOLOCK flag to not lock.
Only for MapRegs*.  And then lock all by default, including
TryMapRegsVS().
2014-11-30 10:36:44 -08:00
Henrik Rydgard 466cdb8ddf x86 Jit: Basic implementation of SIMD vmmul. Can be improved. 2014-11-30 19:27:43 +01:00
Henrik Rydgard 74e70f1159 Fix silly typo 2014-11-30 17:24:56 +01:00
Henrik Rydgard ac772f25ff x86 JIT: Join adjacent vrot calls together to avoid redundant sin/cos calls. Add a prototype, fix minor issues. 2014-11-30 11:04:13 +01:00