mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
0e2382a959
This syscall doesn't need allocating stack or TLS and it's expected from the application to do that instead. E.g. WASI-libc already does this for `pthread_create`. Also fix some of the examples to allocate memory for stack and not use stack before the stack pointer is set to a correct value.
22 lines
586 B
ArmAsm
22 lines
586 B
ArmAsm
# A slightly modified copy of the wasi-libc implementation
|
|
# https://github.com/WebAssembly/wasi-libc/pull/376/
|
|
.globaltype __stack_pointer, i32
|
|
.functype __wasi_thread_start_C (i32, i32) -> ()
|
|
|
|
.globl wasi_thread_start
|
|
|
|
wasi_thread_start:
|
|
.functype wasi_thread_start (i32, i32) -> ()
|
|
|
|
# Set up the minimum C environment.
|
|
# Note: offsetof(start_arg, stack) == 0
|
|
local.get 1 # start_arg
|
|
i32.load 0 # stack
|
|
global.set __stack_pointer
|
|
|
|
# Make the C function do the rest of work.
|
|
local.get 0 # tid
|
|
local.get 1 # start_arg
|
|
call __wasi_thread_start_C
|
|
|
|
end_function |