diff options
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 6d61065d551..2902e32a439 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -732,6 +732,11 @@ rust_task::config_notify(chan_handle chan) { notify_chan = chan; } +// This is the function that switches stacks by calling another function with +// a single void* argument while changing the stack pointer. It has a funny +// name because gdb doesn't normally like to backtrace through split stacks +// (thinks it indicates a bug), but has a special case to allow functions +// named __morestack to move the stack pointer around. extern "C" void __morestack(void *args, void *fn_ptr, uintptr_t stack_ptr); static uintptr_t |
