aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authornotaz2011-07-01 01:26:35 +0300
committernotaz2011-07-08 00:15:20 +0300
commit0e828e88b618067cfd112b2a8b8cdd4f2a7e04b3 (patch)
treec632e47d6146035b659f6d1dd93d976a568d4020 /libpcsxcore
parent631e6f284702250d609d34d56ba2278bac2fa637 (diff)
downloadpcsx_rearmed-0e828e88b618067cfd112b2a8b8cdd4f2a7e04b3.tar.gz
pcsx_rearmed-0e828e88b618067cfd112b2a8b8cdd4f2a7e04b3.tar.bz2
pcsx_rearmed-0e828e88b618067cfd112b2a8b8cdd4f2a7e04b3.zip
gte_neon: fix MAC0 shift
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/gte_neon.s10
1 files changed, 6 insertions, 4 deletions
diff --git a/libpcsxcore/gte_neon.s b/libpcsxcore/gte_neon.s
index 22bde4e..0db8917 100644
--- a/libpcsxcore/gte_neon.s
+++ b/libpcsxcore/gte_neon.s
@@ -234,18 +234,19 @@ gteRTPS_neon:
vadd.s64 d20, d7 @ | gteDQB + gteDQA * quotient
vmovn.s32 d18, q9 @ fS|XY2 [s16]
- vqshrn.s64 d20, q10, #12 @ | gteMAC0
+ vqmovn.s64 d20, q10 @ | gteMAC0
add r3, r0, #4*12
vst1.32 d16, [r3]! @ writeback fS|XY01
vst1.32 d18[0], [r3] @ ...2
add r3, r0, #4*24
+ vshr.s32 d21, d20, #12
vst1.32 d20[0], [r3] @ gteMAC0
movs r4, r4, lsr #17
orrne lr, #(1<<31)
orrne lr, #(1<<17) @ limE
- vmax.s32 d21, d20, d31
+ vmax.s32 d21, d31
vmov.i32 d22, #0x1000
vmin.s32 d21, d22
add r3, r0, #4*8
@@ -464,14 +465,15 @@ gteRTPT_neon:
vst1.32 d12, [r3]! @ writeback fS|XY v=0,1
vst1.32 d13[0], [r3]
- vqshrn.s64 d26, q13, #12 @ | gteMAC0
+ vqmovn.s64 d26, q13 @ | gteMAC0
vmovl.u16 q5, d10 @ expand gteIR|123 v=2
vmov.i32 d13, #0x1000
- vmax.s32 d12, d26, d30
+ vshr.s32 d12, d26, #12
add r3, r0, #4*24
vst1.32 d26[0], [r3]! @ gteMAC0
+ vmax.s32 d12, d30
vst1.32 d8, [r3]! @ gteMAC123 (last iteration)
vst1.32 d9[0], [r3]