1388 Commits

Author SHA1 Message Date
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