summaryrefslogtreecommitdiff
path: root/vere/pkg/past/migrate_v4.c
diff options
context:
space:
mode:
Diffstat (limited to 'vere/pkg/past/migrate_v4.c')
-rw-r--r--vere/pkg/past/migrate_v4.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/vere/pkg/past/migrate_v4.c b/vere/pkg/past/migrate_v4.c
new file mode 100644
index 0000000..3ca4176
--- /dev/null
+++ b/vere/pkg/past/migrate_v4.c
@@ -0,0 +1,29 @@
+#include "v3.h"
+#include "v4.h"
+#include "options.h"
+
+# define u3m_v3_reclaim u3m_v4_reclaim
+
+/* u3_migrate_v4: perform loom migration if necessary.
+*/
+void
+u3_migrate_v4(c3_d eve_d)
+{
+ u3_v3_load(u3C.wor_i);
+
+ if ( eve_d != u3H_v3->arv_u.eve_d ) {
+ fprintf(stderr, "loom: migrate (v4) stale snapshot: have %"
+ PRIu64 ", need %" PRIu64 "\r\n",
+ u3H_v3->arv_u.eve_d, eve_d);
+ abort();
+ }
+
+ fprintf(stderr, "loom: bytecode alignment migration running...\r\n");
+
+ u3m_v3_reclaim();
+
+ u3H_v4 = u3H_v3;
+ u3H_v4->ver_w = U3V_VER4;
+
+ fprintf(stderr, "loom: bytecode alignment migration done\r\n");
+}