@@ -191,49 +191,47 @@ pub extern "C" fn __udivmoddi4(n: u64, d: u64, rem: Option<&mut u64>) -> u64 {
191
191
// 1 <= sr <= u32::bits() - 1
192
192
q = n << ( u64:: bits ( ) - sr) ;
193
193
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 ) ) ;
210
201
}
211
202
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
+ }
213
210
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 ( ) ;
230
212
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 ( ) ) ;
232
221
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 ;
236
228
}
229
+
230
+ sr += 1 ;
231
+
232
+ // 1 <= sr <= u32::bits()
233
+ q = n << ( u64:: bits ( ) - sr) ;
234
+ r = n >> sr;
237
235
}
238
236
239
237
// Not a special case
0 commit comments