summaryrefslogtreecommitdiff
path: root/src/cmd/8l/pass.c
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-02-14 13:23:51 +0100
committerOndřej Surý <ondrej@sury.org>2011-02-14 13:23:51 +0100
commit758ff64c69e34965f8af5b2d6ffd65e8d7ab2150 (patch)
tree6d6b34f8c678862fe9b56c945a7b63f68502c245 /src/cmd/8l/pass.c
parent3e45412327a2654a77944249962b3652e6142299 (diff)
downloadgolang-upstream/2011-02-01.1.tar.gz
Imported Upstream version 2011-02-01.1upstream/2011-02-01.1
Diffstat (limited to 'src/cmd/8l/pass.c')
-rw-r--r--src/cmd/8l/pass.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmd/8l/pass.c b/src/cmd/8l/pass.c
index 6e387b0b5..878a73dac 100644
--- a/src/cmd/8l/pass.c
+++ b/src/cmd/8l/pass.c
@@ -38,8 +38,15 @@ static void xfol(Prog*, Prog**);
// see ../../pkg/runtime/proc.c:/StackGuard
enum
{
+#ifdef __WINDOWS__
+ // use larger stacks to compensate for larger stack guard,
+ // needed for exception handling.
+ StackSmall = 256,
+ StackBig = 8192,
+#else
StackSmall = 128,
StackBig = 4096,
+#endif
};
Prog*
@@ -510,7 +517,7 @@ dostkoff(void)
p->to.type = D_DX;
/* 160 comes from 3 calls (3*8) 4 safes (4*8) and 104 guard */
p->from.type = D_CONST;
- if(autoffset+160 > 4096)
+ if(autoffset+160+cursym->text->to.offset2 > 4096)
p->from.offset = (autoffset+160) & ~7LL;
p = appendp(p); // save arg size in AX