Commit graph

202 commits

Author SHA1 Message Date
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
Unknown W. Brackets
bb26e4f7d0 x86jit: Implement vmmov using SIMD.
4x -> 87x in microbenchmarking.
2014-11-29 18:46:38 -08:00
Henrik Rydgard
8bd20ed8d1 x86 jit: Implement matrix init ops in SIMD. Turn off SIMD again by default (oops) 2014-11-29 12:30:21 +01:00
Henrik Rydgard
8f016d3e48 Merge some matrix utils and stuff from the NEON branch 2014-11-29 11:37:45 +01:00
Henrik Rydgård
ae15722a2e Merge pull request #7112 from unknownbrackets/jit-simd
jit: MAP_NOINIT should always mean MAP_DIRTY
2014-11-29 10:19:33 +01:00
Unknown W. Brackets
f6f943de63 jit: MAP_NOINIT should always mean MAP_DIRTY. 2014-11-29 00:14:08 -08:00
Henrik Rydgard
32c81c3265 x86 jit vcrsp.t: Oops, don't "SimpleReg" before doing the SIMD solution.. 2014-11-28 01:06:32 +01:00
Henrik Rydgard
344f71b092 x86 jit: Commit commented-out haddps-based vdot.q as reminder not to use haddps... 2014-11-28 00:19:11 +01:00
Henrik Rydgard
8f4d322dc6 Another oops... 2014-11-27 23:33:03 +01:00
Henrik Rydgard
bcdfb496a0 Oops, bad merge 2014-11-27 23:12:57 +01:00
Henrik Rydgard
c5bf3adec0 x86 jit: use the correct fp move instruction, minor optimization in vdot 2014-11-27 23:08:15 +01:00
Unknown W. Brackets
bbeb5758b7 x86jit: Simplify VS() / VSX() usage. 2014-11-27 00:07:17 -08:00
Unknown W. Brackets
f63c165f64 x86jit: Fix several cases of missing dirty checks. 2014-11-26 23:28:14 -08:00
Henrik Rydgard
acb711007f x86 jit: SIMD-ify cross product 2014-11-27 00:18:19 +01:00
Henrik Rydgard
5033babb10 x86 Jit: SIMD-ify vdot 2014-11-26 23:47:18 +01:00
Henrik Rydgard
4b25afb7b4 x86 Jit: SIMD some more instructions 2014-11-26 22:30:06 +01:00
Henrik Rydgard
804de50711 x86 jit: SIMD-ify VFPU register file writebacks where possible 2014-11-26 01:33:05 +01:00
Henrik Rydgard
b3c8a82c49 x86 jit: SIMD-ify some more 2014-11-25 23:56:46 +01:00
Henrik Rydgard
b5ee47a80c x86 jit: SIMD-ify lv.q and sv.q 2014-11-25 23:28:29 +01:00
Henrik Rydgård
4db6b7f3e2 SIMD-ify a couple instructions a bit 2014-11-25 22:47:26 +01:00
Unknown W. Brackets
5347431c20 x86jit: Initial simd for VecDo3(). Broken.
I'm not sure why/where it's broken...
2014-11-16 13:33:15 -08:00