Commit Graph
1231 Commits
Author SHA1 Message Date
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
Henrik Rydgård eab010a0c0 x86 JIT: Sacrifice a register for a pointer to the MIPS context. Shrinks emitted x86 code considerably.
Nice in 64-bit, but might be a bit too much in 32-bit though... Needs testing.
2014-10-12 19:35:55 +02:00
Henrik Rydgård f99c2cd010 x86 Jit: Generate nicer code for some cases of addiu 2014-10-12 17:47:53 +02:00
Henrik Rydgård 91966824bb minor cleanup: No point in having special functions for ReadFCR/WriteFCR, they're smaller than many other ops.. 2014-10-11 15:57:36 +02:00
Henrik Rydgård 2feae8d98e Merge pull request #6978 from daniel229/replace_danganronpa
Replace frame download in danganronpa 1&2
2014-10-07 00:46:19 +02:00
Henrik Rydgård c9a21ab44d Add T2 and T3 to our register enum for clarity 2014-10-05 14:20:30 +02:00
daniel229 5ff098efb9 Another replace frame download in danganronpa 1 2014-10-05 13:46:47 +08:00
daniel229 ef1484da65 Replace frame download in danganronpa 1 2014-10-05 13:44:39 +08:00