]> Cypherpunks repositories - gostls13.git/commit
runtime: assume precisestack, copystack, StackCopyAlways, ScanStackByFrames
authorRuss Cox <rsc@golang.org>
Tue, 9 Sep 2014 17:39:57 +0000 (13:39 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 9 Sep 2014 17:39:57 +0000 (13:39 -0400)
commit15b76ad94b1054ec7fd6853530bff782790b5727
tree0721c80e6464caf693a9f31187a7635a3a1dcacb
parentd72029e3a3e6726248d84fdd1e468a3683ccb577
runtime: assume precisestack, copystack, StackCopyAlways, ScanStackByFrames

Commit to stack copying for stack growth.

We're carrying around a surprising amount of cruft from older schemes.
I am confident that precise stack scans and stack copying are here to stay.

Delete fallback code for when precise stack info is disabled.
Delete fallback code for when copying stacks is disabled.
Delete fallback code for when StackCopyAlways is disabled.
Delete Stktop chain - there is only one stack segment now.
Delete M.moreargp, M.moreargsize, M.moreframesize, M.cret.
Delete G.writenbuf (unrelated, just dead).
Delete runtime.lessstack, runtime.oldstack.
Delete many amd64 morestack variants.
Delete initialization of morestack frame/arg sizes (shortens split prologue!).

Replace G's stackguard/stackbase/stack0/stacksize/
syscallstack/syscallguard/forkstackguard with simple stack
bounds (lo, hi).

Update liblink, runtime/cgo for adjustments to G.

LGTM=khr
R=khr, bradfitz
CC=golang-codereviews, iant, r
https://golang.org/cl/137410043
50 files changed:
include/link.h
src/cmd/dist/buildruntime.c
src/liblink/obj5.c
src/liblink/obj6.c
src/liblink/obj8.c
src/runtime/asm_386.s
src/runtime/asm_amd64.s
src/runtime/asm_amd64p32.s
src/runtime/asm_arm.s
src/runtime/cgo/gcc_darwin_386.c
src/runtime/cgo/gcc_darwin_amd64.c
src/runtime/cgo/gcc_dragonfly_386.c
src/runtime/cgo/gcc_dragonfly_amd64.c
src/runtime/cgo/gcc_freebsd_386.c
src/runtime/cgo/gcc_freebsd_amd64.c
src/runtime/cgo/gcc_freebsd_arm.c
src/runtime/cgo/gcc_linux_386.c
src/runtime/cgo/gcc_linux_amd64.c
src/runtime/cgo/gcc_linux_arm.c
src/runtime/cgo/gcc_netbsd_386.c
src/runtime/cgo/gcc_netbsd_amd64.c
src/runtime/cgo/gcc_netbsd_arm.c
src/runtime/cgo/gcc_openbsd_386.c
src/runtime/cgo/gcc_openbsd_amd64.c
src/runtime/cgo/gcc_windows_386.c
src/runtime/cgo/gcc_windows_amd64.c
src/runtime/cgo/libcgo.h
src/runtime/export_test.go
src/runtime/heapdump.c
src/runtime/malloc.go
src/runtime/mgc0.c
src/runtime/mgc0.h
src/runtime/os_darwin.c
src/runtime/os_dragonfly.c
src/runtime/os_freebsd.c
src/runtime/os_linux.c
src/runtime/os_nacl.c
src/runtime/os_netbsd.c
src/runtime/os_openbsd.c
src/runtime/os_solaris.c
src/runtime/panic.c
src/runtime/proc.c
src/runtime/runtime.h
src/runtime/stack.c
src/runtime/stack.h
src/runtime/stack_gen_test.go [deleted file]
src/runtime/stack_test.go
src/runtime/stubs.go
src/runtime/traceback.go
src/runtime/traceback_windows.go [deleted file]