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
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
Unknown W. Brackets
097a483d77
x86jit: Micro optimize vs2i a bit.
2014-11-06 22:45:54 -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
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
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
56322bdad4
Improve performance of ForgetFunctions().
...
Mostly matters during shutdown, but also module unload.
2014-11-02 17:32:04 -08:00
Unknown W. Brackets
258b7c9a7c
jit: Use the end just to be safe.
...
In case clearing near the end of a block.
2014-10-27 19:05:52 -07:00
Unknown W. Brackets
5bb9d32eaa
jit: Fix partial invalidation of larger blocks.
...
Fixes #7031 .
2014-10-27 19:04:19 -07:00
Unknown W. Brackets
100afc07a2
x86jit: Fix andLink cases of imm blezl, etc.
2014-10-24 08:57:56 -07:00
Unknown W. Brackets
0c1dcfeacf
Avoid comparing invalidated iterators.
2014-10-22 00:50:39 -07:00
Unknown W. Brackets
65ecc9a464
jit: Use an exclusive end in the block map.
...
Simpler, was not consistent before, oops.
2014-10-21 11:52:19 -07:00
BlackDog
f7e8ca486c
add lwc1 lwc2 swc1 swc2 opcodes
2014-10-19 20:42:12 +02:00
Unknown W. Brackets
ef6d583542
x86jit: Oops, don't pad INT3s in prelinked blocks.
...
Fixes #7007 .
2014-10-15 22:07:56 -07:00
Unknown W. Brackets
b53f13480a
x86jit: Centralize continuing logic.
2014-10-12 19:01:04 -07:00
Unknown W. Brackets
040a6d1745
jit: Improve performance of clearing jit.
2014-10-12 19:00:03 -07:00
Unknown W. Brackets
e6373aaed9
jit: Remove from the block map more carefully.
2014-10-12 17:47:07 -07:00
Unknown W. Brackets
2e81a38892
jit: Fix a possible infinite loop in invalidation.
2014-10-12 17:46:54 -07:00
Unknown W. Brackets
4853a1b7a0
jit: Optimize proxy block lookup from address.
...
It was really slow before with enough proxy blocks.
2014-10-12 17:35:23 -07:00
Unknown W. Brackets
1064f580e4
armjit: Add proxy blocks for continuing.
2014-10-12 17:20:26 -07:00
Unknown W. Brackets
d98adf27d6
x86jit: Add proxy blocks for continuing.
2014-10-12 17:15:31 -07:00
Unknown W. Brackets
01f9521dc5
jit: Invalidate blocks even if they end unevenly.
...
This allows blocks to start and end where ever they need, which should be
good for replacements and for continuing.
2014-10-12 17:13:04 -07:00
Unknown W. Brackets
90821b761d
x86jit: Pad linked exits with breakpoints.
...
So that we don't get garbage, and so we see if we end up there.
2014-10-12 16:00:58 -07:00
Unknown W. Brackets
5fd402222b
x86jit: Use the shorter MDisp() offset for andLink.
2014-10-12 15:18:22 -07:00
Unknown W. Brackets
0f32103615
x86jit: Consistently use mips_.
2014-10-12 15:16:09 -07:00
Henrik Rydgård
afbe50d3b9
Merge pull request #6998 from unknownbrackets/jit-minor2
...
x86jit: Preload sp and similar regs used often
2014-10-13 00:00:28 +02:00
Unknown W. Brackets
e3a04aa2d2
x86jit: Preload sp and similar regs used often.
...
This can help us avoid using a temporary.
Very tiny performance improvement.
2014-10-12 14:53:56 -07:00
Unknown W. Brackets
6fae78cd3f
x86jit: Fix a bug in branch continuing.
...
When we predict it won't take a likely delay slot, we'd lose our register
allocation state.
2014-10-12 12:51:47 -07:00
Unknown W. Brackets
2f598e8f38
jit: Statically jump for fixed branches.
...
This handles both loops (first step is known) and static branches (some
code uses them instead of jumps, and we disassemble that to "b".)
Not likely to be a big improvement, but might help if the branch predictor
was wrong.
This is as opposed to continuing, which would build a larger jit block.
2014-10-12 12:51:47 -07:00
Unknown W. Brackets
9228ac72da
jit: Reorganize imm branch logic a bit.
2014-10-12 12:51:46 -07:00
Unknown W. Brackets
4d30288601
x86jit: Fix force flush to zero.
2014-10-12 12:51:46 -07: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 Rydgård
6cb2c9c97d
Merge pull request #6989 from hrydgard/x86-emitter-merge
...
Merge from Dolphin's x86-64 emitter
2014-10-12 19:52:59 +02:00
Henrik Rydgård
3b1476c8ec
MIPSTables: Annotate fp and hi/lo in/out more accurately than just "other"
...
Some typo fixes
2014-10-12 19:46:50 +02:00
Henrik Rydgard
8177b4c43b
Avoid an ifdef using PTRBITS
2014-10-12 19:35:55 +02:00