Lines Matching refs:shift
100 unsigned shift, sign = (a >> 63) & 1; in drm_fixp_msbset() local
102 for (shift = 62; shift > 0; --shift) in drm_fixp_msbset()
103 if (((a >> shift) & 1) != sign) in drm_fixp_msbset()
104 return shift; in drm_fixp_msbset()
111 unsigned shift = drm_fixp_msbset(a) + drm_fixp_msbset(b); in drm_fixp_mul() local
114 if (shift > 61) { in drm_fixp_mul()
115 shift = shift - 61; in drm_fixp_mul()
116 a >>= (shift >> 1) + (shift & 1); in drm_fixp_mul()
117 b >>= shift >> 1; in drm_fixp_mul()
119 shift = 0; in drm_fixp_mul()
123 if (shift > DRM_FIXED_POINT) in drm_fixp_mul()
124 return result << (shift - DRM_FIXED_POINT); in drm_fixp_mul()
126 if (shift < DRM_FIXED_POINT) in drm_fixp_mul()
127 return result >> (DRM_FIXED_POINT - shift); in drm_fixp_mul()
134 unsigned shift = 62 - drm_fixp_msbset(a); in drm_fixp_div() local
137 a <<= shift; in drm_fixp_div()
139 if (shift < DRM_FIXED_POINT) in drm_fixp_div()
140 b >>= (DRM_FIXED_POINT - shift); in drm_fixp_div()
144 if (shift > DRM_FIXED_POINT) in drm_fixp_div()
145 return result >> (shift - DRM_FIXED_POINT); in drm_fixp_div()