Fix compilation on macOS.

Change-Id: I7515f2037c81d56461f243ee62b6df1de3aaf56b
diff --git a/src/code-buffer-vixl.cc b/src/code-buffer-vixl.cc
index ea33e68..65abaea 100644
--- a/src/code-buffer-vixl.cc
+++ b/src/code-buffer-vixl.cc
@@ -43,12 +43,16 @@
   if (capacity_ == 0) {
     return;
   }
+#ifdef __APPLE__
+  buffer_ = reinterpret_cast<byte*>(malloc(capacity_));
+#else
   buffer_ = reinterpret_cast<byte*>(mmap(NULL,
                                          capacity,
                                          PROT_READ | PROT_WRITE,
                                          MAP_PRIVATE | MAP_ANONYMOUS,
                                          -1,
                                          0));
+#endif
   VIXL_CHECK(buffer_ != NULL);
   // Aarch64 instructions must be word aligned, we assert the default allocator
   // always returns word align memory.
@@ -71,7 +75,11 @@
 CodeBuffer::~CodeBuffer() {
   VIXL_ASSERT(!IsDirty());
   if (managed_) {
+#ifdef __APPLE__
+    free(buffer_);
+#else
     munmap(buffer_, capacity_);
+#endif
   }
 }
 
@@ -140,8 +148,13 @@
   VIXL_ASSERT(managed_);
   VIXL_ASSERT(new_capacity > capacity_);
   ptrdiff_t cursor_offset = GetCursorOffset();
+#ifdef __APPLE__
+  buffer_ = static_cast<byte*>(realloc(buffer_, new_capacity));
+  VIXL_CHECK(buffer_ != NULL);
+#else
   buffer_ = static_cast<byte*>(
       mremap(buffer_, capacity_, new_capacity, MREMAP_MAYMOVE));
+#endif
   VIXL_CHECK(buffer_ != MAP_FAILED);
 
   cursor_ = buffer_ + cursor_offset;