aboutsummaryrefslogtreecommitdiff
path: root/lib/arch/arm/thread_create.s
diff options
context:
space:
mode:
authorjohannst <johannes.stoelp@gmail.com>2021-02-26 23:19:03 +0100
committerjohannst <johannes.stoelp@gmail.com>2021-02-26 23:19:03 +0100
commit0d881bc974b74dff75c00a3cab5d535cbb2ace46 (patch)
tree35c5892c135d5623879b106e93df4cc235669a8d /lib/arch/arm/thread_create.s
parent5fbee6be76c8751c282b45c54b8179ae525e00c1 (diff)
downloadmatcha-threads-0d881bc974b74dff75c00a3cab5d535cbb2ace46.tar.gz
matcha-threads-0d881bc974b74dff75c00a3cab5d535cbb2ace46.zip
added implementation for armv7a
Diffstat (limited to 'lib/arch/arm/thread_create.s')
-rw-r--r--lib/arch/arm/thread_create.s20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/arch/arm/thread_create.s b/lib/arch/arm/thread_create.s
new file mode 100644
index 0000000..7231c3e
--- /dev/null
+++ b/lib/arch/arm/thread_create.s
@@ -0,0 +1,20 @@
+# Copyright (c) 2021 Johannes Stoelp
+
+ .arch armv7-a
+ .section .text, "ax", %progbits
+
+ # extern "C" void thread_create();
+ .global thread_create
+ .type thread_create, %function
+thread_create:
+ .cfi_startproc
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp]
+
+ blx r1
+
+ # FIXME: no return from thread after user fn finished.
+1:
+ b 1b
+ .cfi_endproc
+ .size thread_create, .-thread_create