@@ -51,39 +51,6 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
51
51
}
52
52
53
53
// Raw memory accesses
54
- #[ rustfmt:: skip]
55
- | "copy"
56
- | "copy_nonoverlapping"
57
- => {
58
- let & [ src, dest, count] = check_arg_count ( args) ?;
59
- let elem_ty = instance. substs . type_at ( 0 ) ;
60
- let elem_layout = this. layout_of ( elem_ty) ?;
61
- let count = this. read_scalar ( count) ?. to_machine_usize ( this) ?;
62
- let elem_align = elem_layout. align . abi ;
63
-
64
- let size = elem_layout. size . checked_mul ( count, this)
65
- . ok_or_else ( || err_ub_format ! ( "overflow computing total size of `{}`" , intrinsic_name) ) ?;
66
- let src = this. read_scalar ( src) ?. check_init ( ) ?;
67
- let src = this. memory . check_ptr_access ( src, size, elem_align) ?;
68
- let dest = this. read_scalar ( dest) ?. check_init ( ) ?;
69
- let dest = this. memory . check_ptr_access ( dest, size, elem_align) ?;
70
-
71
- if let ( Some ( src) , Some ( dest) ) = ( src, dest) {
72
- this. memory . copy (
73
- src,
74
- dest,
75
- size,
76
- intrinsic_name. ends_with ( "_nonoverlapping" ) ,
77
- ) ?;
78
- }
79
- }
80
-
81
- "move_val_init" => {
82
- let & [ place, dest] = check_arg_count ( args) ?;
83
- let place = this. deref_operand ( place) ?;
84
- this. copy_op ( dest, place. into ( ) ) ?;
85
- }
86
-
87
54
"volatile_load" => {
88
55
let & [ place] = check_arg_count ( args) ?;
89
56
let place = this. deref_operand ( place) ?;
0 commit comments