shithub: mc

Download patch

ref: d0e4fdbfed4d69c60e5d431accbcb6e08e014344
parent: fdbd75fad30016627aa740bfeaa8592d0ec80d44
author: Ori Bernstein <ori@eigenstate.org>
date: Fri May 27 14:25:09 EDT 2016

Add missing file.

--- /dev/null
+++ b/lib/thread/exit+openbsd-x64.s
@@ -1,0 +1,23 @@
+/*
+const thread.exit	: (stacksz : std.size -> void)
+NOTE: must be called from the bottom of the stack, since
+we assume that %rbp is in the top 4k of the stack.
+*/
+.globl thread$exit
+thread$exit:
+	/* find top of stack */
+	movq	%rbp,%rdi	/* addr */
+	andq	$~0xfff,%rdi	/* align it */
+	addq	$0x1000,%rdi
+
+	/* munmap(base, size) */
+	movq	$73,%rax	/* munmap */
+	movq	-8(%rdi),%rsi	/* size */
+	subq	%rsi,%rdi	/* move to base ptr */
+	syscall
+
+	/* __threxit(0) */
+	movq	$302,%rax	/* exit */
+	xorq	%rdi,%rdi	/* 0 */
+	syscall
+