From: Russ Cox Date: Mon, 8 Sep 2014 21:37:49 +0000 (-0400) Subject: runtime: mark freedefer and deferclass go:nosplit X-Git-Tag: go1.4beta1~474 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=857d55a3f9cfc8ccc8aef24571417ae4ecabbcc9;p=gostls13.git runtime: mark freedefer and deferclass go:nosplit This should make deferreturn nosplit all the way down, which should fix the current windows/amd64 failure. If not, I will change StackCopyAlways back to 0. TBR=khr CC=golang-codereviews https://golang.org/cl/135600043 --- diff --git a/src/runtime/panic.go b/src/runtime/panic.go index 740fa026e2..a5a8fbd6dd 100644 --- a/src/runtime/panic.go +++ b/src/runtime/panic.go @@ -95,6 +95,7 @@ func deferproc(siz int32, fn *funcval) { // arguments of fn follow fn // This maps exactly to malloc size classes. // defer size class for arg size sz +//go:nosplit func deferclass(siz uintptr) uintptr { return (siz + 7) >> 4 } @@ -159,6 +160,7 @@ func newdefer(siz int32) *_defer { // Free the given defer. // The defer cannot be used after this call. +//go:nosplit func freedefer(d *_defer) { if d.special { return