diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-11-30 17:08:06 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-11-30 20:31:33 -0800 |
| commit | e6ef4d929ca01bdbedc4056cc33f1770e71d87ee (patch) | |
| tree | dd694a48debb4f149e4ddef41881dad6ee478812 /src/rt/rust_task.cpp | |
| parent | 408d4ec0ef40a2ce650fab8d730a79f08d35054a (diff) | |
| download | rust-e6ef4d929ca01bdbedc4056cc33f1770e71d87ee.tar.gz rust-e6ef4d929ca01bdbedc4056cc33f1770e71d87ee.zip | |
rt: Remove the stack pointer field of stk_seg
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 6c79ef3264a..7210fe3956c 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -67,14 +67,11 @@ record_sp(void *limit); // Entry points for `__morestack` (see arch/*/morestack.S). extern "C" void * -rust_new_stack(size_t stk_sz, void *args_addr, size_t args_sz, - uintptr_t current_sp) { +rust_new_stack(size_t stk_sz, void *args_addr, size_t args_sz) { rust_task *task = rust_scheduler::get_task(); stk_seg *stk_seg = new_stk(task->sched, task, stk_sz + args_sz); - // Save the previous stack pointer so it can be restored later - stk_seg->return_sp = current_sp; uint8_t *new_sp = (uint8_t*)stk_seg->limit; size_t sizeof_retaddr = sizeof(void*); // Make enough room on the new stack to hold the old stack pointer @@ -90,7 +87,6 @@ struct rust_new_stack2_args { size_t stk_sz; void *args_addr; size_t args_sz; - uintptr_t current_sp; }; // A new stack function suitable for calling through @@ -98,7 +94,7 @@ struct rust_new_stack2_args { extern "C" void * rust_new_stack2(struct rust_new_stack2_args *args) { return rust_new_stack(args->stk_sz, args->args_addr, - args->args_sz, args->current_sp); + args->args_sz); } extern "C" void @@ -108,12 +104,6 @@ rust_del_stack() { record_sp(task->stk->data + RED_ZONE_SIZE); } -extern "C" uintptr_t -rust_get_prev_stack() { - rust_task *task = rust_scheduler::get_task(); - return task->stk->return_sp; -} - extern "C" rust_task * rust_get_task() { return rust_scheduler::get_task(); |
