From 493b5f649c3de3fd511a39dd6bcf4ebce8553810 Mon Sep 17 00:00:00 2001 From: Scott Olson Date: Sun, 20 Mar 2016 19:23:57 -0600 Subject: [PATCH] Implement the move_val_init intrinsic. --- src/interpreter.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/interpreter.rs b/src/interpreter.rs index e5a593239cf6..2b299e5c65aa 100644 --- a/src/interpreter.rs +++ b/src/interpreter.rs @@ -347,6 +347,17 @@ impl<'a, 'tcx: 'a, 'arena> Interpreter<'a, 'tcx, 'arena> { try!(self.memory.write_int(dest, 1, dest_size)); } + "move_val_init" => { + let ty = *substs.types.get(subst::FnSpace, 0); + let size = self.ty_size(ty); + + let ptr_arg = try!(self.eval_operand(&args[0])); + let ptr = try!(self.memory.read_ptr(ptr_arg)); + + let val = try!(self.eval_operand(&args[1])); + try!(self.memory.copy(val, ptr, size)); + } + // FIXME(tsion): Handle different integer types correctly. "mul_with_overflow" => { let ty = *substs.types.get(subst::FnSpace, 0);