notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gte_neon: make rtps division better match rtpt
[pcsx_rearmed.git]
/
libpcsxcore
/
gte_neon.s
diff --git
a/libpcsxcore/gte_neon.s
b/libpcsxcore/gte_neon.s
index
38bf989
..
470c3e3
100644
(file)
--- a/
libpcsxcore/gte_neon.s
+++ b/
libpcsxcore/gte_neon.s
@@
-199,6
+199,8
@@
gteRTPS_neon:
@ just for 1 value, let's just use VFP divider here
vdiv.f32 s22, s26, s22
@ just for 1 value, let's just use VFP divider here
vdiv.f32 s22, s26, s22
+ vmov.f32 d20, #0.5
+ vadd.f32 d11, d20
vcvt.u32.f32 d11, d11 @ quotient
@ while NEON's busy we calculate some flags on ARM
vcvt.u32.f32 d11, d11 @ quotient
@ while NEON's busy we calculate some flags on ARM
@@
-375,14
+377,16
@@
gteRTPT_neon:
vmovl.s32 q3, d6 @ || gteDQ|AB [64]
vrecps.f32 q12, q10, q11 @ step
vcvt.f32.u32 d13, d13 @ | gteH (float for div)
vmovl.s32 q3, d6 @ || gteDQ|AB [64]
vrecps.f32 q12, q10, q11 @ step
vcvt.f32.u32 d13, d13 @ | gteH (float for div)
+ vmov.f32 q8, #0.5 @ |||
vmul.f32 q11, q12, q11 @ better inv
add r3, r0, #4*16
vst1.32 d14[0], [r3] @ gteSZ0 = gteSZ3
vdup.32 q13, d13[0] @ |
vmul.f32 q11, q12, q11 @ better inv
add r3, r0, #4*16
vst1.32 d14[0], [r3] @ gteSZ0 = gteSZ3
vdup.32 q13, d13[0] @ |
- vrecps.f32 q12, q10, q11 @ step
- vmul.f32 q11, q12, q11 @ better inv
+
@
vrecps.f32 q12, q10, q11 @ step
+
@
vmul.f32 q11, q12, q11 @ better inv
vmul.f32 q10, q13, q11 @ result
.else
vmul.f32 q10, q13, q11 @ result
.else
+ vmov.f32 q8, #0.5 @ |||
vmovl.s32 q2, d4 @ || gteOF|XY [64]
vmovl.s32 q3, d6 @ || gteDQ|AB [64]
vcvt.f32.u32 d13, d13 @ | gteH (float for div)
vmovl.s32 q2, d4 @ || gteOF|XY [64]
vmovl.s32 q3, d6 @ || gteDQ|AB [64]
vcvt.f32.u32 d13, d13 @ | gteH (float for div)
@@
-409,7
+413,7
@@
gteRTPT_neon:
orrne lr, #(1<<31)
orrne lr, #(1<<18) @ fSZ (limD)
orrne lr, #(1<<31)
orrne lr, #(1<<18) @ fSZ (limD)
-
@ vadd.f32 q10, q
@ adjust for vcvt rounding mode
+
vadd.f32 q10, q8
@ adjust for vcvt rounding mode
vcvt.u32.f32 q8, q10
vmovl.s16 q9, d1 @ expand gteIR|12 v=0
vmovl.s16 q10, d3 @ expand gteIR|12 v=1
vcvt.u32.f32 q8, q10
vmovl.s16 q9, d1 @ expand gteIR|12 v=0
vmovl.s16 q10, d3 @ expand gteIR|12 v=1