Henrik Rydgård
7fbe8ba898
Merge pull request #7076 from unknownbrackets/debugger
...
Add VFPU instructions to the mips asm tables
2014-11-10 00:57:08 +01:00
Unknown W. Brackets
370fb86379
Add VFPU instructions to the mips asm tables.
2014-11-09 15:14:07 -08:00
Unknown W. Brackets
86e3739a3e
x86jit: Optimize some cases of ins/ext.
...
They happen but are minor.
2014-11-09 09:22:29 -08:00
Unknown W. Brackets
e05263af32
x86jit: Allow EBX sign extension for 32-bit.
2014-11-09 09:07:52 -08:00
Unknown W. Brackets
8dbd3c3b9c
x86jit: Don't lie about ZERO when it's not an imm.
2014-11-09 08:27:02 -08:00
Unknown W. Brackets
d0a2ced2f9
x86jit: Flip cc in stl* to avoid reg loads.
...
Unfortunately, this zero thing is now concerning me...
2014-11-09 08:15:39 -08:00
Unknown W. Brackets
59f491eddb
x86jit: Micro optimize slt* a bit.
...
This improves their performance and hopefully latency. It also avoids
filling registers that are not likely to be used again.
Fixed a small mistake.
2014-11-09 07:23:44 -08:00
Henrik Rydgard
18495a452d
Rename an enum
2014-11-09 14:55:23 +01:00
Henrik Rydgard
a19d0b648a
x86 jit: Add a simple speedhack (ignore masking stack pointers) but disable due to low impact.
2014-11-09 14:54:39 +01:00
Henrik Rydgard
a528921f3c
x86 JIT: EBX was free in 32-bit mode, let's use it in the regcache.
2014-11-09 12:55:17 +01:00
Henrik Rydgard
1eec10b614
Properly prevent loading ISO to RAM in 32-bit mode (could have been enabled in 64-bit mode where the UI exists)
2014-11-09 12:53:31 +01:00
Henrik Rydgard
db853d8513
Collapse sequences of "int3" (padding after block linking) in x86 disassembly.
2014-11-09 12:10:37 +01:00
Henrik Rydgard
5888b3bdc4
Revert "x86jit: Micro optimize slt* a bit."
...
This reverts commit ee66596b8d .
Broke a lot of games, probably some small bug.
Conflicts:
Core/MIPS/x86/CompALU.cpp
2014-11-09 12:07:21 +01:00
Henrik Rydgard
5bcdecc26b
unittest: Have the JIT harness print disassembly, to make it easy to inspect results.
2014-11-09 12:03:04 +01:00
Unknown W. Brackets
313d9e95c7
Clarify a comment.
2014-11-09 01:05:03 -08:00
Unknown W. Brackets
ee66596b8d
x86jit: Micro optimize slt* a bit.
...
This improves their performance and hopefully latency. It also avoids
filling registers that are not likely to be used again.
2014-11-08 22:54:03 -08:00
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