void VM::set_stack_bounds(size_t size) { void* stack_address; stack_size_ = size; stack_start_ = &stack_address; set_stack_bounds(stack_start_, stack_size_); }
void VM::set_current_fiber(Fiber* fib) { if(fib->root_p()) { restore_stack_bounds(); } else { set_stack_bounds(fib->stack_start(), fib->stack_size()); } current_fiber.set(fib); }
void set_root_stack(uintptr_t start, int length) { root_stack_start_ = start; root_stack_size_ = length; set_stack_bounds(root_stack_start_, root_stack_size_); }
void VM::set_current_fiber(Fiber* fib) { set_stack_bounds((uintptr_t)fib->stack_start(), fib->stack_size()); current_fiber.set(fib); }
void set_stack_size(int s) { set_stack_bounds(stack_start_, s); }
void set_stack_start(void* s) { set_stack_bounds(reinterpret_cast<uintptr_t>(s), stack_size_); }