summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-12-05 19:50:09 -0500
committerRuss Cox <rsc@golang.org>2014-12-05 19:50:09 -0500
commitf83565bc02ff8dbf9bb7d72a863f63c18361665d (patch)
treea2c4fdfd9c3bd179ef6d4e0043af1f6840352dd9
parent38dd025dc495715d02b1c6cc8ab93e863fa5fa29 (diff)
downloadgo-dev.garbage.tar.gz
[dev.garbage] runtime: raise StackGuard limit for Windows (again)dev.garbage
640 bytes ought to be enough for anybody. We'll bring this back down before Go 1.5. That's issue 9214. TBR=rlh CC=golang-codereviews https://codereview.appspot.com/188730043
-rw-r--r--src/runtime/stack.h2
-rw-r--r--src/runtime/stack2.go2
-rw-r--r--test/nosplit.go4
3 files changed, 4 insertions, 4 deletions
diff --git a/src/runtime/stack.h b/src/runtime/stack.h
index 0099d05c2..0b2cd56a9 100644
--- a/src/runtime/stack.h
+++ b/src/runtime/stack.h
@@ -17,7 +17,7 @@ enum {
#endif // Windows
StackBig = 4096,
- StackGuard = 512 + StackSystem,
+ StackGuard = 640 + StackSystem,
StackSmall = 128,
StackLimit = StackGuard - StackSystem - StackSmall,
};
diff --git a/src/runtime/stack2.go b/src/runtime/stack2.go
index e50b32c78..8a78b1ad9 100644
--- a/src/runtime/stack2.go
+++ b/src/runtime/stack2.go
@@ -84,7 +84,7 @@ const (
// The stack guard is a pointer this many bytes above the
// bottom of the stack.
- _StackGuard = 512 + _StackSystem
+ _StackGuard = 640 + _StackSystem
// After a stack split check the SP is allowed to be this
// many bytes below the stack guard. This saves an instruction
diff --git a/test/nosplit.go b/test/nosplit.go
index 3a63e8731..799f2c533 100644
--- a/test/nosplit.go
+++ b/test/nosplit.go
@@ -268,11 +268,11 @@ TestCases:
name := m[1]
size, _ := strconv.Atoi(m[2])
- // The limit was originally 128 but is now 384.
+ // The limit was originally 128 but is now 512.
// Instead of rewriting the test cases above, adjust
// the first stack frame to use up the extra 32 bytes.
if i == 0 {
- size += 384 - 128
+ size += 512 - 128
}
if size%ptrSize == 4 {