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
degasus
003288a886
JitArm64: Track singles in fp_arith.
2016-02-25 19:47:05 +01:00
degasus
ae1b5ff9e8
JitArm64: Track single precision in load/store.
2016-02-25 19:47:05 +01:00
degasus
1e59dc1025
JitArm64: Single precision tracking.
2016-02-25 19:47:05 +01:00
Lioncash
b36b10fa78
Memmap: Make the MMIO mapping a unique_ptr
2016-02-15 00:02:00 -05:00
degasus
f259a8d6cf
JitArm64: Merge more stuff into ps_maddXX.
2016-02-12 23:26:47 +01:00
degasus
8b32cd0738
JitArm64: Merge ps_sumX.
2016-02-12 10:09:57 +01:00
degasus
2d8e1bc34d
JitArm64: Merge PS stuff into fp_logic.
2016-02-12 10:09:57 +01:00
degasus
52f9912c46
ArmJit64: Merge FP two operant instructions.
2016-02-12 10:09:57 +01:00
degasus
157404fd1e
JitArm64: Merge ps_mulsX.
2016-02-12 10:09:57 +01:00
degasus
09af32c063
JitArm64: Merge ps_mergeXX.
2016-02-12 10:09:57 +01:00