File tree Expand file tree Collapse file tree 2 files changed +62
-62
lines changed Expand file tree Collapse file tree 2 files changed +62
-62
lines changed Original file line number Diff line number Diff line change @@ -233,65 +233,3 @@ pub unsafe extern "aapcs" fn __aeabi_memclr4(dest: *mut u8, n: usize) {
233
233
pub unsafe extern "aapcs" fn __aeabi_memclr8 ( dest : * mut u8 , n : usize ) {
234
234
__aeabi_memset4 ( dest, n, 0 ) ;
235
235
}
236
-
237
- #[ no_mangle]
238
- #[ cfg( any(
239
- target_pointer_width = "16" ,
240
- target_pointer_width = "32" ,
241
- target_pointer_width = "64"
242
- ) ) ]
243
- pub extern "C" fn __clzsi2 ( mut x : usize ) -> usize {
244
- // TODO: const this? Requires const if
245
- let mut y: usize ;
246
- let mut n: usize = {
247
- #[ cfg( target_pointer_width = "64" ) ]
248
- {
249
- 64
250
- }
251
- #[ cfg( target_pointer_width = "32" ) ]
252
- {
253
- 32
254
- }
255
- #[ cfg( target_pointer_width = "16" ) ]
256
- {
257
- 16
258
- }
259
- } ;
260
- #[ cfg( target_pointer_width = "64" ) ]
261
- {
262
- y = x >> 32 ;
263
- if y != 0 {
264
- n -= 32 ;
265
- x = y;
266
- }
267
- }
268
- #[ cfg( any( target_pointer_width = "32" , target_pointer_width = "64" ) ) ]
269
- {
270
- y = x >> 16 ;
271
- if y != 0 {
272
- n -= 16 ;
273
- x = y;
274
- }
275
- }
276
- y = x >> 8 ;
277
- if y != 0 {
278
- n -= 8 ;
279
- x = y;
280
- }
281
- y = x >> 4 ;
282
- if y != 0 {
283
- n -= 4 ;
284
- x = y;
285
- }
286
- y = x >> 2 ;
287
- if y != 0 {
288
- n -= 2 ;
289
- x = y;
290
- }
291
- y = x >> 1 ;
292
- if y != 0 {
293
- n - 2
294
- } else {
295
- n - x
296
- }
297
- }
Original file line number Diff line number Diff line change @@ -300,3 +300,65 @@ macro_rules! impl_wide_int {
300
300
301
301
impl_wide_int ! ( u32 , u64 , 32 ) ;
302
302
impl_wide_int ! ( u64 , u128 , 64 ) ;
303
+
304
+ #[ no_mangle]
305
+ #[ cfg( any(
306
+ target_pointer_width = "16" ,
307
+ target_pointer_width = "32" ,
308
+ target_pointer_width = "64"
309
+ ) ) ]
310
+ pub extern "C" fn __clzsi2 ( mut x : usize ) -> usize {
311
+ // TODO: const this? Would require const-if
312
+ let mut y: usize ;
313
+ let mut n: usize = {
314
+ #[ cfg( target_pointer_width = "64" ) ]
315
+ {
316
+ 64
317
+ }
318
+ #[ cfg( target_pointer_width = "32" ) ]
319
+ {
320
+ 32
321
+ }
322
+ #[ cfg( target_pointer_width = "16" ) ]
323
+ {
324
+ 16
325
+ }
326
+ } ;
327
+ #[ cfg( target_pointer_width = "64" ) ]
328
+ {
329
+ y = x >> 32 ;
330
+ if y != 0 {
331
+ n -= 32 ;
332
+ x = y;
333
+ }
334
+ }
335
+ #[ cfg( any( target_pointer_width = "32" , target_pointer_width = "64" ) ) ]
336
+ {
337
+ y = x >> 16 ;
338
+ if y != 0 {
339
+ n -= 16 ;
340
+ x = y;
341
+ }
342
+ }
343
+ y = x >> 8 ;
344
+ if y != 0 {
345
+ n -= 8 ;
346
+ x = y;
347
+ }
348
+ y = x >> 4 ;
349
+ if y != 0 {
350
+ n -= 4 ;
351
+ x = y;
352
+ }
353
+ y = x >> 2 ;
354
+ if y != 0 {
355
+ n -= 2 ;
356
+ x = y;
357
+ }
358
+ y = x >> 1 ;
359
+ if y != 0 {
360
+ n - 2
361
+ } else {
362
+ n - x
363
+ }
364
+ }
You can’t perform that action at this time.
0 commit comments