From b175d94d45adc3b0777dfb09d6f82dabea0bab4f Mon Sep 17 00:00:00 2001
From: Petr Rockai <me@mornfall.net>
Date: Tue, 14 Jan 2020 10:40:17 +0000
Subject: [PATCH] VM: Add pointer (de)composition utilities to divm.h.

---
 divine/vm/divm.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/divine/vm/divm.h b/divine/vm/divm.h
index b02067710..200e15787 100644
--- a/divine/vm/divm.h
+++ b/divine/vm/divm.h
@@ -502,6 +502,24 @@ _VMUTIL_INLINE void __vm_cancel( void ) NOTHROW
     __vm_ctl_set( _VM_CR_Frame, 0 );
 }
 
+typedef struct { uint32_t off, obj; } __vm_pointer_t;
+void *memcpy( void *dest, const void * src, unsigned long n ) NOTHROW;
+
+_VMUTIL_INLINE __vm_pointer_t __vm_pointer_split( void *ptr )
+{
+    __vm_pointer_t rv;
+    memcpy( &rv, &ptr, sizeof( rv ) );
+    return rv;
+}
+
+_VMUTIL_INLINE void *__vm_pointer_make( uint32_t obj, uint32_t off )
+{
+    __vm_pointer_t ptr = { off, obj };
+    void *rv;
+    memcpy( &rv, &ptr, sizeof( rv ) );
+    return rv;
+}
+
 EXTERN_END
 
 #endif // __divine__
-- 
GitLab