@@ -191,49 +191,47 @@ pub extern "C" fn __udivmoddi4(n: u64, d: u64, rem: Option<&mut u64>) -> u64 {
191191 // 1 <= sr <= u32::bits() - 1
192192 q = n << ( u64:: bits ( ) - sr) ;
193193 r = n >> sr;
194- } else {
195- if d. high ( ) == 0 {
196- // K X
197- // ---
198- // 0 K
199- if d. low ( ) . is_power_of_two ( ) {
200- if let Some ( rem) = rem {
201- * rem = u64:: from ( n. low ( ) & ( d. low ( ) - 1 ) ) ;
202- }
203-
204- if d. low ( ) == 1 {
205- return n;
206- } else {
207- let sr = d. low ( ) . trailing_zeros ( ) ;
208- return n >> sr;
209- } ;
194+ } else if d. high ( ) == 0 {
195+ // K X
196+ // ---
197+ // 0 K
198+ if d. low ( ) . is_power_of_two ( ) {
199+ if let Some ( rem) = rem {
200+ * rem = u64:: from ( n. low ( ) & ( d. low ( ) - 1 ) ) ;
210201 }
211202
212- sr = 1 + u32:: bits ( ) + d. low ( ) . leading_zeros ( ) - n. high ( ) . leading_zeros ( ) ;
203+ if d. low ( ) == 1 {
204+ return n;
205+ } else {
206+ let sr = d. low ( ) . trailing_zeros ( ) ;
207+ return n >> sr;
208+ } ;
209+ }
213210
214- // 2 <= sr <= u64::bits() - 1
215- q = n << ( u64:: bits ( ) - sr) ;
216- r = n >> sr;
217- } else {
218- // K X
219- // ---
220- // K K
221- sr = d. high ( ) . leading_zeros ( ) . wrapping_sub ( n. high ( ) . leading_zeros ( ) ) ;
222-
223- // D > N
224- if sr > u32:: bits ( ) - 1 {
225- if let Some ( rem) = rem {
226- * rem = n;
227- }
228- return 0 ;
229- }
211+ sr = 1 + u32:: bits ( ) + d. low ( ) . leading_zeros ( ) - n. high ( ) . leading_zeros ( ) ;
230212
231- sr += 1 ;
213+ // 2 <= sr <= u64::bits() - 1
214+ q = n << ( u64:: bits ( ) - sr) ;
215+ r = n >> sr;
216+ } else {
217+ // K X
218+ // ---
219+ // K K
220+ sr = d. high ( ) . leading_zeros ( ) . wrapping_sub ( n. high ( ) . leading_zeros ( ) ) ;
232221
233- // 1 <= sr <= u32::bits()
234- q = n << ( u64:: bits ( ) - sr) ;
235- r = n >> sr;
222+ // D > N
223+ if sr > u32:: bits ( ) - 1 {
224+ if let Some ( rem) = rem {
225+ * rem = n;
226+ }
227+ return 0 ;
236228 }
229+
230+ sr += 1 ;
231+
232+ // 1 <= sr <= u32::bits()
233+ q = n << ( u64:: bits ( ) - sr) ;
234+ r = n >> sr;
237235 }
238236
239237 // Not a special case
0 commit comments