diff --git a/builder/sizes_test.go b/builder/sizes_test.go index 931e9970e..6009810c0 100644 --- a/builder/sizes_test.go +++ b/builder/sizes_test.go @@ -42,9 +42,9 @@ func TestBinarySize(t *testing.T) { // This is a small number of very diverse targets that we want to test. tests := []sizeTest{ // microcontrollers - {"hifive1b", "examples/echo", 4560, 280, 0, 2268}, - {"microbit", "examples/serial", 2924, 388, 8, 2272}, - {"wioterminal", "examples/pininterrupt", 7383, 1489, 116, 6912}, + {"hifive1b", "examples/echo", 4556, 280, 0, 2268}, + {"microbit", "examples/serial", 2920, 388, 8, 2272}, + {"wioterminal", "examples/pininterrupt", 7379, 1489, 116, 6912}, // TODO: also check wasm. Right now this is difficult, because // wasm binaries are run through wasm-opt and therefore the diff --git a/src/internal/task/task_none.go b/src/internal/task/task_none.go index 280f1c4a8..60bd867ae 100644 --- a/src/internal/task/task_none.go +++ b/src/internal/task/task_none.go @@ -36,3 +36,9 @@ func OnSystemStack() bool { // This scheduler does not do any stack switching. return true } + +func SystemStack() uintptr { + // System stack is the current stack, so this shouldn't be called. + runtimePanic("scheduler is disabled") + return 0 // unreachable +} diff --git a/src/runtime/gc_stack_raw.go b/src/runtime/gc_stack_raw.go index 94cb5e43b..5c302b1f1 100644 --- a/src/runtime/gc_stack_raw.go +++ b/src/runtime/gc_stack_raw.go @@ -20,7 +20,7 @@ func markStack() { if !task.OnSystemStack() { // Mark system stack. - markRoots(getSystemStackPointer(), stackTop) + markRoots(task.SystemStack(), stackTop) } } diff --git a/src/runtime/scheduler_none.go b/src/runtime/scheduler_none.go index 3f88e03eb..153973971 100644 --- a/src/runtime/scheduler_none.go +++ b/src/runtime/scheduler_none.go @@ -73,9 +73,3 @@ func scheduler(returnAtDeadlock bool) { // this code should be unreachable. runtimePanic("unreachable: scheduler must not be called with the 'none' scheduler") } - -// getSystemStackPointer returns the current stack pointer of the system stack. -// This is always the current stack pointer. -func getSystemStackPointer() uintptr { - return getCurrentStackPointer() -} diff --git a/src/runtime/scheduler_tasks.go b/src/runtime/scheduler_tasks.go deleted file mode 100644 index 6ee540fd3..000000000 --- a/src/runtime/scheduler_tasks.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build scheduler.tasks - -package runtime - -import "internal/task" - -// getSystemStackPointer returns the current stack pointer of the system stack. -// This is not necessarily the same as the current stack pointer. -func getSystemStackPointer() uintptr { - // TODO: this always returns the correct stack on Cortex-M, so don't bother - // comparing against 0. - sp := task.SystemStack() - if sp == 0 { - sp = getCurrentStackPointer() - } - return sp -}