Index: src/IceMemoryRegion.cpp |
diff --git a/src/IceMemoryRegion.cpp b/src/IceMemoryRegion.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9c4294013b2a74edccdfd5b4cd1ce18dc0394b33 |
--- /dev/null |
+++ b/src/IceMemoryRegion.cpp |
@@ -0,0 +1,32 @@ |
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+// |
+// Modified by the Subzero authors. |
+// |
+//===- subzero/src/IceMemoryRegion.cpp - Memory region --------------------===// |
+// |
+// The Subzero Code Generator |
+// |
+// This file is distributed under the University of Illinois Open Source |
+// License. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+// |
+// This file defines the MemoryRegion class. It tracks a pointer plus its |
+// bounds for bounds-checking in debug mode. |
+//===----------------------------------------------------------------------===// |
+ |
+#include "IceMemoryRegion.h" |
+ |
+namespace Ice { |
+ |
+void MemoryRegion::CopyFrom(uintptr_t offset, const MemoryRegion &from) const { |
+ assert(from.pointer() != NULL && from.size() > 0); |
+ assert(this->size() >= from.size()); |
+ assert(offset <= this->size() - from.size()); |
+ memmove(reinterpret_cast<void *>(start() + offset), from.pointer(), |
+ from.size()); |
+} |
+ |
+} // end of namespace Ice |