@@ -316,9 +316,9 @@ where
316
316
// | small1 | Chunk smaller than 8 bytes
317
317
// +--------+
318
318
fn region_as_aligned_chunks ( ptr : * const u8 , len : usize ) -> ( usize , usize , usize ) {
319
- let small0_size = if ptr as usize % 8 == 0 { 0 } else { 8 - ptr as usize % 8 } ;
320
- let small1_size = ( len - small0_size as usize ) % 8 ;
321
- let big_size = len - small0_size as usize - small1_size as usize ;
319
+ let small0_size = if ptr. is_aligned_to ( 8 ) { 0 } else { 8 - ptr. addr ( ) % 8 } ;
320
+ let small1_size = ( len - small0_size) % 8 ;
321
+ let big_size = len - small0_size - small1_size;
322
322
323
323
( small0_size, big_size, small1_size)
324
324
}
@@ -364,8 +364,8 @@ pub(crate) unsafe fn copy_to_userspace(src: *const u8, dst: *mut u8, len: usize)
364
364
mfence
365
365
lfence
366
366
" ,
367
- val = in( reg_byte) * src. offset ( off as isize ) ,
368
- dst = in( reg) dst. offset ( off as isize ) ,
367
+ val = in( reg_byte) * src. add ( off) ,
368
+ dst = in( reg) dst. add ( off) ,
369
369
seg_sel = in( reg) & mut seg_sel,
370
370
options( nostack, att_syntax)
371
371
) ;
@@ -378,8 +378,8 @@ pub(crate) unsafe fn copy_to_userspace(src: *const u8, dst: *mut u8, len: usize)
378
378
assert ! ( is_enclave_range( src, len) ) ;
379
379
assert ! ( is_user_range( dst, len) ) ;
380
380
assert ! ( len < isize :: MAX as usize ) ;
381
- assert ! ( !( src as usize ) . overflowing_add( len) . 1 ) ;
382
- assert ! ( !( dst as usize ) . overflowing_add( len) . 1 ) ;
381
+ assert ! ( !src. addr ( ) . overflowing_add( len) . 1 ) ;
382
+ assert ! ( !dst. addr ( ) . overflowing_add( len) . 1 ) ;
383
383
384
384
if len < 8 {
385
385
// Can't align on 8 byte boundary: copy safely byte per byte
@@ -404,17 +404,17 @@ pub(crate) unsafe fn copy_to_userspace(src: *const u8, dst: *mut u8, len: usize)
404
404
405
405
unsafe {
406
406
// Copy small0
407
- copy_bytewise_to_userspace ( src, dst, small0_size as _ ) ;
407
+ copy_bytewise_to_userspace ( src, dst, small0_size) ;
408
408
409
409
// Copy big
410
- let big_src = src. offset ( small0_size as _ ) ;
411
- let big_dst = dst. offset ( small0_size as _ ) ;
412
- copy_quadwords ( big_src as _ , big_dst, big_size) ;
410
+ let big_src = src. add ( small0_size) ;
411
+ let big_dst = dst. add ( small0_size) ;
412
+ copy_quadwords ( big_src, big_dst, big_size) ;
413
413
414
414
// Copy small1
415
- let small1_src = src. offset ( big_size as isize + small0_size as isize ) ;
416
- let small1_dst = dst. offset ( big_size as isize + small0_size as isize ) ;
417
- copy_bytewise_to_userspace ( small1_src, small1_dst, small1_size as _ ) ;
415
+ let small1_src = src. add ( big_size + small0_size) ;
416
+ let small1_dst = dst. add ( big_size + small0_size) ;
417
+ copy_bytewise_to_userspace ( small1_src, small1_dst, small1_size) ;
418
418
}
419
419
}
420
420
}
0 commit comments