Add basic assembler interface and an x86 backend.

Change-Id: Ia8136bad88f1194c8a247e2af80e486ab88c1e8c
diff --git a/src/memory_region.cc b/src/memory_region.cc
new file mode 100644
index 0000000..1fa5d1f
--- /dev/null
+++ b/src/memory_region.cc
@@ -0,0 +1,21 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+
+#include <stdint.h>
+#include <string.h>
+#include "src/globals.h"
+#include "src/logging.h"
+#include "src/memory_region.h"
+
+namespace android {
+namespace runtime {
+
+void MemoryRegion::CopyFrom(size_t offset, const MemoryRegion& from) const {
+  CHECK_NE(from.pointer(), NULL);
+  CHECK_GT(from.size(), 0);
+  CHECK_GE(this->size(), from.size());
+  CHECK_LE(offset, this->size() - from.size());
+  memmove(reinterpret_cast<void*>(start() + offset),
+          from.pointer(), from.size());
+}
+
+} }  // namespace android::runtime