degasus
637851fce0
JitArm64: optimize bclrx
...
the unconditional path is the most common, so no need to switch to far code here.
2016-05-14 00:05:55 +02:00
degasus
b6f16352e4
JitArm64: Check downcount on block linking.
...
This skips one B() call.
2016-05-14 00:04:58 +02:00
degasus
10e716c623
JitCommon: Pass jit block instead of host pointer on linking.
...
So the JIT may do more fancy stuff.
2016-05-14 00:04:58 +02:00
degasus
cf3c65fbd0
JitArm64: Use B() instead of BR() to jumo to ASM.
...
Avoid indirect jumps as good as possible. This is a noticeable speedup.
2016-05-14 00:04:58 +02:00
degasus
b2be9bd7f7
JitArm64: Inline JitAsm in JitArm64.
...
So they share the same emitter, and so they are in the same 128MB range.
This allows us to use B() to jump to the dispatcher.
However, so we have to regenerate them on every cache clear.
2016-05-14 00:04:58 +02:00
Matthew Parlane
ea82fcc24f
Merge pull request #3658 from Tilka/helpers
...
Interpreter: simplify some helpers
2016-05-03 22:44:27 +12:00
Mathew Maidment
b99b685f22
Merge pull request #3800 from phire/unexceptional-exceptions
...
Make exceptions consistent across all JITs/Interpreters (Fixes Pokemon Box)
2016-04-29 19:48:55 -04:00
Mathew Maidment
b420abc908
Merge pull request #3769 from RisingFog/remove_framestep
...
Remove Unused Framestop Functions
2016-04-29 19:41:25 -04:00
Scott Mansell
eb5819f88a
Make exceptions consistant across all JITs/Interpeters.
...
They all handled it diffrently, so I've just moved it into Advance()
This fixes Pokemon Box booting in JIT/JITIL which shared a bug where
exceptions set in a scheduled event would be ignored untill the next
slice (upto 20,000 cycles).
2016-04-28 17:22:52 +12:00
Chris Burgener
3140f9b226
Change GetStatePtr() Return to const
2016-04-05 12:45:48 -04:00
Pierre Bourdon
21eb1cd158
Merge pull request #3635 from phire/lazy_comex
...
Implement BLR Overflow handling for Windows.
2016-03-26 01:42:54 +01:00
Scott Mansell
d61baef2f6
Disable JitArm64's inline timebase implemenation, as it's incorrect.
...
The interpeted version is correct.
2016-03-24 05:17:10 +13:00
Scott Mansell
27beef1ff4
Store an inverted copy of lastOCfactor.
...
The inverse operation is more common, especially when games check the
timer rapidly. So we do the division once and store the inverted copy.
2016-03-24 05:17:10 +13:00
Scott Mansell
407f86e01a
Mark global variables with g_ prefix
2016-03-24 04:32:12 +13:00
Scott Mansell
2ebbfd6f85
Adjust cycle counts so they are accurate to the jit block level
...
Previously GlobalTimer was only updated at the end of each slice
when CoreTiming::Advance() was called, so it could be upto 20,000
cycles off.
This was causing huge problems with games which made heavy use of
the time base register, such as OoT (virtual console) and Pokemon
puzzle.
I've also made it so event scheduling will be accurate to the jit
block level, instead of accurate to the slice.
2016-03-24 04:24:53 +13:00
Scott Mansell
c5b3a2efac
Implement BLR Overflow handling for Windows.
2016-03-20 00:41:28 +13:00
degasus
54a4d68c9a
JitArm64: implement dcbx
2016-03-05 00:29:38 +01:00
degasus
9bf50fb93d
JitArm64: Fix mulli.
...
mulli has no inst.OE
2016-03-04 22:51:47 +01:00
degasus
9ed465f4ac
JitArm64: Implement mulhwx
2016-03-04 22:51:46 +01:00
degasus
889a0d396d
JitArm64: Align farcode entry points to 16 bytes
2016-03-04 22:49:02 +01:00
degasus
eaa0e275db
JitArm64: Use immediate WriteExceptionExit more often.
2016-03-04 22:49:01 +01:00
degasus
689205f0a4
JitArm64: small cleanup, no changes
2016-03-04 22:49:01 +01:00
degasus
7b017c6a65
JitArm64: Use a register as PC argument for the dispatcher.
2016-03-04 19:50:12 +01:00
degasus
050932ed23
JitArm64: Rename global registers.
2016-03-04 19:50:12 +01:00
degasus
57d76cefb0
JitArm64: Merge WriteExceptionExit.
2016-03-04 19:50:12 +01:00
degasus
55b9ce9b5b
JitArm64: Store memory pointer once, not per block.
2016-03-04 19:50:12 +01:00
degasus
56c8f65bc2
JitArm64: Precheck for exceptions before calling PowerPC::CheckExceptions.
2016-03-04 19:50:12 +01:00
degasus
aea48c4591
JitArm64: Drop unused WriteExceptionExit.
2016-03-04 19:50:11 +01:00
degasus
c5b0dc98c2
JitArm64: Fix LWZ idle skipping.
2016-03-04 19:50:11 +01:00
Ryan Houdek
36b476ed76
Merge pull request #3683 from Sonicadvance1/aarch64_fix_fcmp
...
[AArch64] Fix fcmp.
2016-03-01 09:29:56 -05:00
degasus
e2725792d4
JitArm64: Optimize addi
2016-02-29 08:39:24 +01:00
degasus
4478146c80
JitArm64: Split addi from arith_imm.
...
They ARM assembly has different immediate versions for logic and additions, so there is no use in merging those instructions.
2016-02-29 08:39:14 +01:00
Ryan Houdek
abaa8fc24d
[AArch64] Fix fcmp.
...
Fixes Luigi's head vanishing. Was due to a mishandling of nans.
Confirmed fixed by hardware test.
2016-02-28 13:15:47 -06:00
degasus
68defb72a3
JitArm64: Don't generate the carry if it's not used any more.
2016-02-27 21:27:29 +01:00
degasus
3286bbd9bd
JitArm64: Track single precision in ps_sel.
2016-02-25 19:47:07 +01:00
degasus
141e299161
JitArm64: Track single precision in fctiwzx.
2016-02-25 19:47:07 +01:00
degasus
e0793a274f
JitArm64: Track singles in fselx.
2016-02-25 19:47:07 +01:00
degasus
b4d0307b25
JitArm64: Remove LoadTo* helpers.
2016-02-25 19:47:07 +01:00
degasus
2112d8dfda
JitArm64: Replace REG_IS_LOADED with REG_LOWER_PAIR
2016-02-25 19:47:07 +01:00
degasus
c30a66b2d5
JitArm64: Track singles in fabs.
2016-02-25 19:47:07 +01:00
degasus
84395b65f6
JitArm64: Track singles in psq_st.
2016-02-25 19:47:06 +01:00
degasus
fe87462be8
JitArm64: Track singles in stfs.
2016-02-25 19:47:06 +01:00
degasus
5fad3d94a0
JitArm64: Track singles in fcmpX.
2016-02-25 19:47:06 +01:00
degasus
c8948ff8c7
JitArm64: Track single precision in ps_maddXX.
2016-02-25 19:47:06 +01:00
degasus
7fd68c8761
JitArm64: Track singles in ps_sumX.
2016-02-25 19:47:06 +01:00
degasus
ca091b9e92
JitArm64: Track single precision in ps_res.
2016-02-25 19:47:06 +01:00
degasus
d185d2f704
JitArm64: Track singles in ps_mulsX.
2016-02-25 19:47:06 +01:00
degasus
6572790d8b
JitArm64: Track singles in ps_mergeXX.
2016-02-25 19:47:06 +01:00
degasus
5506295123
JitArm64: Track singles in frspx.
2016-02-25 19:47:06 +01:00
degasus
0efdd5cacd
JitArm64: Track singles in paired fp_logic.
2016-02-25 19:47:06 +01:00