Unknown W. Brackets
27d8108bb2
x86jit: Optimize loads of 0 into fp regs.
2014-11-08 18:41:16 -08:00
Unknown W. Brackets
7d8858687e
x86jit: Avoid speculative loads in mtc1/mfc1.
2014-11-08 18:35:15 -08:00
Unknown W. Brackets
57caa95273
x86jit: Implement round.w.s and friends.
...
They are not terribly fast, though, updating MXCSR.
2014-11-08 17:59:38 -08:00
Unknown W. Brackets
3908e0f445
x86jit: Small optimization for add.s f1, f2, f2.
...
Doubles the speed of that particular case. Biggest difference is not
loading fd for no reason.
2014-11-08 17:32:53 -08:00
Unknown W. Brackets
f9893c29ce
x86jit: Very small optimization to c.nge.s.
2014-11-08 17:01:02 -08:00
Unknown W. Brackets
78dfe43776
x86jit: Optimize neg.s and abs.s a tiny bit.
...
Same reg is probably a common case, improves micro benchmark.
2014-11-08 16:50:41 -08:00
Unknown W. Brackets
bed0d0b059
x86jit: Improve cvt.w.s when fd is loaded or fs.
...
We have no need to store it.
2014-11-08 16:40:54 -08:00
Unknown W. Brackets
1917d946ea
x86jit: Micro optimize cvt.s.w a bit.
...
This implementation is about 5x faster for micro benchmarks. Little
impact to overall perf in games I tested, though.
2014-11-08 13:30:38 -08:00
Unknown W. Brackets
671dee85c7
x86jit: Micro optimize vi2f a little bit.
...
This didn't help overall perf much but micro benchmarks are better.
2014-11-08 13:07:01 -08:00
Unknown W. Brackets
c29b126357
x86jit: Oops, can't have an imm here.
2014-11-08 12:41:48 -08:00
Unknown W. Brackets
c0be19edb6
x86jit: Simplify vavg a bit.
2014-11-08 12:40:04 -08:00
Unknown W. Brackets
761e269e5f
x86jit: Avoid some regcache pollution.
2014-11-08 12:38:08 -08:00
Unknown W. Brackets
bc7497857a
x86jit: Micro optimize vi2x a bit with ssse3/sse4.
...
Both are small wins.
2014-11-08 12:13:26 -08:00
Unknown W. Brackets
0e646f748a
x86jit: Implement vi2x instructions.
...
Also, my opcodes were wrong in the test (shifted the pair bit the wrong
way, oops.)
AFAICT, there's no reason PSRAD/etc. were not encoding REX...
2014-11-08 12:13:26 -08:00
Unknown W. Brackets
ddc90ee550
x86jit: Implement vfad and vavg.
2014-11-08 12:13:25 -08:00
Unknown W. Brackets
5ae43defd9
Oops, these should be signed.
2014-11-08 09:39:17 -08:00
level99procrastinator
a98980d28b
Workaround for graphics glitch in Phantasy Star Portable 2
2014-11-08 20:31:17 +08:00
Henrik Rydgård
f7d86f2210
Merge pull request #7068 from unknownbrackets/jit-minor
...
x86jit: Implement other forms of vx2i
2014-11-08 10:58:48 +01:00
Unknown W. Brackets
316e923b40
x86jit: Implement other forms of vx2i.
...
Gains 3.2% performance in Grand Knights History.
2014-11-08 00:39:40 -08:00
sum2012
758ddffc37
Prevent unknown getpointer in sceKernelMemset
...
Fix #7064
2014-11-08 06:49:24 +08:00
Henrik Rydgård
517ca0569e
Merge pull request #7058 from unknownbrackets/io-minor
...
Handle negative read sizes more correctly
2014-11-07 12:16:09 +01:00
Henrik Rydgård
4eb9dc05c0
Merge pull request #7055 from unknownbrackets/reloc-fix
...
Correct unload of imported vars
2014-11-07 12:15:50 +01:00
Unknown W. Brackets
097a483d77
x86jit: Micro optimize vs2i a bit.
2014-11-06 22:45:54 -08:00
Unknown W. Brackets
79ff697f9d
Return an error code for negative file sizes.
2014-11-06 08:45:45 -08:00
Unknown W. Brackets
c085b9c082
Don't try to read negative file sizes.
2014-11-06 08:45:33 -08:00
Unknown W. Brackets
49aff7c75d
Correct unload of imported vars.
...
From level99procrastinator, just slightly adjusted.
2014-11-05 22:57:25 -08:00
Unknown W. Brackets
7819b97c9a
iOS buildfix.
2014-11-04 08:32:43 -08:00
TwistedUmbrella
6797044476
Correct a namespace typo
2014-11-04 05:10:22 -05:00
Unknown W. Brackets
3061e89250
Fix copy/paste mistake.
2014-11-04 01:41:17 -08:00
Unknown W. Brackets
0d36d4e082
Add a helper to reduce duplicate code.
...
This is not performance critical. I wonder if compilers can inline
closures?
2014-11-03 23:50:23 -08:00
Unknown W. Brackets
16ca2b0155
x86jit: Fix trig vv2ops on 32-bit, arg.
2014-11-03 23:43:18 -08:00
Unknown W. Brackets
5ef2df7ebd
Fix a small warning on 32-bit.
...
Would only practically matter for very very large reads on very very large
csos.
2014-11-03 23:32:25 -08:00
Unknown W. Brackets
3e95763a3f
x86jit: Implement other rounding modes in vf2i.
...
3% improvement in Grand Knights History. I know other games use these
too.
2014-11-03 23:27:05 -08:00
Unknown W. Brackets
717cf25f0d
x86jit: Use our sincos funcs for VV2Op as well.
...
Small (0.7%) speedup in Gods Eater Burst. There's probably SSE
approximations we could use instead, but those will also need at least xmm
reg flushing/thunking.
At least this avoids flushing gprs, etc. The sin and cos ops are fairly
common.
2014-11-03 22:13:38 -08:00
Unknown W. Brackets
014445655d
Actually clear the hash->func map on forget.
...
Better not to have dangling pointers.
2014-11-03 13:49:45 -08:00
Unknown W. Brackets
10bcb323ac
Oops, forgot to free up zlib resources.
2014-11-03 13:40:09 -08:00
Henrik Rydgård
f1d43e7e90
Merge pull request #7046 from unknownbrackets/perf
...
Improve load and shutdown performance a bit
2014-11-03 21:50:10 +01:00
Unknown W. Brackets
b279b6d461
Typo.
2014-11-03 09:00:20 -08:00
Unknown W. Brackets
ad6b176e11
Naturally, modern C++ would not build on Symbian.
2014-11-03 08:56:45 -08:00
Unknown W. Brackets
61c21340fb
Warning fixes.
2014-11-03 08:34:34 -08:00
Unknown W. Brackets
9d86d3ca9b
Use std::unordered_multimaps in a few places.
2014-11-03 08:31:52 -08:00
Unknown W. Brackets
67a7205bdd
Switch to a multimap for the hash->function map.
2014-11-03 07:59:56 -08:00
Unknown W. Brackets
8a57e37f33
Minor tweak to avoid some function call overhead.
2014-11-03 07:36:17 -08:00
Unknown W. Brackets
28b3b841d5
Implement optimized multi-block reads for iso/cso.
...
This of course means less fread() calls, and is faster. It improves load
time even on my desktop.
2014-11-02 21:43:27 -08:00
Unknown W. Brackets
9c5ad44000
Add an interface to read multiple blocks at once.
2014-11-02 19:54:13 -08:00
Unknown W. Brackets
bf50baf698
Cleanup some old typedefs.
2014-11-02 18:46:12 -08:00
Unknown W. Brackets
a391296c17
Small optimization to func/var import.
...
Should compare the nid first, of course, faster and less likely to match
anyway.
2014-11-02 17:53:46 -08:00
Unknown W. Brackets
2d5733407b
Small optimization to __PPGeInit().
...
Small factor in startup time.
2014-11-02 17:44:24 -08:00
Unknown W. Brackets
56322bdad4
Improve performance of ForgetFunctions().
...
Mostly matters during shutdown, but also module unload.
2014-11-02 17:32:04 -08:00
Unknown W. Brackets
dd497e5a02
Show an error when savedata can't be written.
...
Normally we'll log when the disk is full for files, but if we can't even
create the folder, we'll get errors trying to write into a non-existing
directory.
2014-11-02 13:30:00 -08:00