From 64335733e5fd74a430d8d06b021956334200fdf7 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Mon, 25 Dec 2017 11:09:53 +0700 Subject: [PATCH] Simplify Calc_invw() for ZSort ucode. --- src/uCodes/ZSort.cpp | 45 ++++---------------------------------------- 1 file changed, 4 insertions(+), 41 deletions(-) diff --git a/src/uCodes/ZSort.cpp b/src/uCodes/ZSort.cpp index 87c7c4409..265013e1d 100644 --- a/src/uCodes/ZSort.cpp +++ b/src/uCodes/ZSort.cpp @@ -58,48 +58,11 @@ void ZSort_RDPCMD( u32, u32 _w1 ) } } -//RSP command VRCPL -static +inline int Calc_invw (int _w) { - int count, neg; - union { - s32 W; - u32 UW; - s16 HW[2]; - u16 UHW[2]; - } Result; - Result.W = _w; - if (Result.UW == 0) { - Result.UW = 0x7FFFFFFF; - } else { - if (Result.W < 0) { - neg = TRUE; - if (Result.UHW[1] == 0xFFFF && Result.HW[0] < 0) { - Result.W = ~Result.W + 1; - } else { - Result.W = ~Result.W; - } - } else { - neg = FALSE; - } - for (count = 31; count > 0; --count) { - if ((Result.W & (1 << count))) { - Result.W &= (0xFFC00000 >> (31 - count) ); - count = 0; - } - } - Result.W = 0x7FFFFFFF / Result.W; - for (count = 31; count > 0; --count) { - if ((Result.W & (1 << count))) { - Result.W &= (0xFFFF8000 >> (31 - count) ); - count = 0; - } - } - if (neg == TRUE) { - Result.W = ~Result.W; - } - } - return Result.W; + if (_w == 0) + return 0x7FFFFFFF; + return 0x7FFFFFFF / _w; } static