From 9ea01429fd02bdfe62a88d24de5fbb9d574a2f2e Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 12 Sep 2014 07:46:11 -0400 Subject: runtime: stop scanning stack frames/args conservatively The goal here is to commit fully to having precise information about stack frames. If we need information we don't have, crash instead of assuming we should scan conservatively. Since the stack copying assumes fully precise information, any crashes during garbage collection that are introduced by this CL are crashes that could have happened during stack copying instead. Those are harder to find because stacks are copied much less often than the garbage collector is invoked. In service of that goal, remove ARGSIZE macros from asm_*.s, change switchtoM to have no arguments (it doesn't have any live arguments), and add args and locals information to some frames that can call back into Go. LGTM=khr R=khr, rlh CC=golang-codereviews https://codereview.appspot.com/137540043 --- src/runtime/symtab.go | 7 ------- 1 file changed, 7 deletions(-) (limited to 'src/runtime/symtab.go') diff --git a/src/runtime/symtab.go b/src/runtime/symtab.go index bd9e9924c..48d4023b9 100644 --- a/src/runtime/symtab.go +++ b/src/runtime/symtab.go @@ -237,13 +237,6 @@ func pcdatavalue(f *_func, table int32, targetpc uintptr) int32 { return pcvalue(f, off, targetpc, true) } -func funcarglen(f *_func, targetpc uintptr) int32 { - if targetpc == f.entry { - return 0 - } - return pcdatavalue(f, _PCDATA_ArgSize, targetpc-_PCQuantum) -} - func funcdata(f *_func, i int32) unsafe.Pointer { if i < 0 || i >= f.nfuncdata { return nil -- cgit v1.2.1