Loading include/drm/drm_fixed.h +7 −7 Original line number Diff line number Diff line Loading @@ -84,12 +84,12 @@ static inline int drm_fixp2int(int64_t a) return ((s64)a) >> DRM_FIXED_POINT; } static inline s64 drm_fixp_msbset(int64_t a) static inline unsigned drm_fixp_msbset(int64_t a) { unsigned shift, sign = (a >> 63) & 1; for (shift = 62; shift > 0; --shift) if ((a >> shift) != sign) if (((a >> shift) & 1) != sign) return shift; return 0; Loading @@ -100,9 +100,9 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) unsigned shift = drm_fixp_msbset(a) + drm_fixp_msbset(b); s64 result; if (shift > 63) { shift = shift - 63; a >>= shift >> 1; if (shift > 61) { shift = shift - 61; a >>= (shift >> 1) + (shift & 1); b >>= shift >> 1; } else shift = 0; Loading @@ -120,7 +120,7 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) static inline s64 drm_fixp_div(s64 a, s64 b) { unsigned shift = 63 - drm_fixp_msbset(a); unsigned shift = 62 - drm_fixp_msbset(a); s64 result; a <<= shift; Loading Loading @@ -154,7 +154,7 @@ static inline s64 drm_fixp_exp(s64 x) } if (x < 0) sum = drm_fixp_div(1, sum); sum = drm_fixp_div(DRM_FIXED_ONE, sum); return sum; } Loading Loading
include/drm/drm_fixed.h +7 −7 Original line number Diff line number Diff line Loading @@ -84,12 +84,12 @@ static inline int drm_fixp2int(int64_t a) return ((s64)a) >> DRM_FIXED_POINT; } static inline s64 drm_fixp_msbset(int64_t a) static inline unsigned drm_fixp_msbset(int64_t a) { unsigned shift, sign = (a >> 63) & 1; for (shift = 62; shift > 0; --shift) if ((a >> shift) != sign) if (((a >> shift) & 1) != sign) return shift; return 0; Loading @@ -100,9 +100,9 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) unsigned shift = drm_fixp_msbset(a) + drm_fixp_msbset(b); s64 result; if (shift > 63) { shift = shift - 63; a >>= shift >> 1; if (shift > 61) { shift = shift - 61; a >>= (shift >> 1) + (shift & 1); b >>= shift >> 1; } else shift = 0; Loading @@ -120,7 +120,7 @@ static inline s64 drm_fixp_mul(s64 a, s64 b) static inline s64 drm_fixp_div(s64 a, s64 b) { unsigned shift = 63 - drm_fixp_msbset(a); unsigned shift = 62 - drm_fixp_msbset(a); s64 result; a <<= shift; Loading Loading @@ -154,7 +154,7 @@ static inline s64 drm_fixp_exp(s64 x) } if (x < 0) sum = drm_fixp_div(1, sum); sum = drm_fixp_div(DRM_FIXED_ONE, sum); return sum; } Loading