aboutsummaryrefslogtreecommitdiff
path: root/lib/arch/riscv64/thread_create.s
diff options
context:
space:
mode:
authorjohannst <johannes.stoelp@gmail.com>2021-06-09 23:05:05 +0200
committerjohannst <johannes.stoelp@gmail.com>2021-06-09 23:05:05 +0200
commit2e4a31287705d8437cddd109c12b7e11825192bc (patch)
tree448157595deb0b6441abebff45990dc9bd3558e6 /lib/arch/riscv64/thread_create.s
parent0db708a285c74526ebcce31a10f5730f3f715d61 (diff)
downloadmatcha-threads-2e4a31287705d8437cddd109c12b7e11825192bc.tar.gz
matcha-threads-2e4a31287705d8437cddd109c12b7e11825192bc.zip
added riscv64
Diffstat (limited to 'lib/arch/riscv64/thread_create.s')
-rw-r--r--lib/arch/riscv64/thread_create.s19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/arch/riscv64/thread_create.s b/lib/arch/riscv64/thread_create.s
new file mode 100644
index 0000000..68c09cd
--- /dev/null
+++ b/lib/arch/riscv64/thread_create.s
@@ -0,0 +1,19 @@
+# Copyright (c) 2021 Johannes Stoelp
+
+ .section .text, "ax", @progbits
+
+ # extern "C" void thread_create();
+ .global thread_create
+ .type thread_create, @function
+thread_create:
+ .cfi_startproc
+ ld a0, 8(sp)
+ ld x5, 0(sp)
+
+ jalr x5
+
+ # FIXME: no return from thread after user fn finished.
+1:
+ j 1b
+ .cfi_endproc
+ .size thread_create, .-thread_create