X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fgte_neon.s;h=470c3e35d49c84cc3237bcc84819e0d748f4e703;hp=38bf9898f1b962945949bc5d5629c69635a0fe09;hb=02455d0db3002033a703f443a24b7369c0efc6d0;hpb=1dca68f8b58612b3839d915a1244230372627ded diff --git a/libpcsxcore/gte_neon.s b/libpcsxcore/gte_neon.s index 38bf9898..470c3e35 100644 --- 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 + 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 @@ -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) + 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] @ | - 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 + 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) @@ -409,7 +413,7 @@ gteRTPT_neon: 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