summaryrefslogtreecommitdiff
path: root/src/cmd/6l/pass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/6l/pass.c')
-rw-r--r--src/cmd/6l/pass.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/cmd/6l/pass.c b/src/cmd/6l/pass.c
index 0b0ee1253..d9e0b2fc1 100644
--- a/src/cmd/6l/pass.c
+++ b/src/cmd/6l/pass.c
@@ -294,7 +294,8 @@ patch(void)
p->from.offset = 0x58;
}
}
- if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd) {
+ if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd
+ || HEADTYPE == Hopenbsd) {
// ELF uses FS instead of GS.
if(p->from.type == D_INDIR+D_GS)
p->from.type = D_INDIR+D_FS;
@@ -402,8 +403,6 @@ dostkoff(void)
pmorestack[i] = symmorestack[i]->text;
}
- autoffset = 0;
- deltasp = 0;
for(cursym = textp; cursym != nil; cursym = cursym->next) {
if(cursym->text == nil || cursym->text->link == nil)
continue;
@@ -415,14 +414,14 @@ dostkoff(void)
autoffset = 0;
q = P;
- q1 = P;
if((p->from.scale & NOSPLIT) && autoffset >= StackSmall)
diag("nosplit func likely to overflow stack");
if(!(p->from.scale & NOSPLIT)) {
p = appendp(p); // load g into CX
p->as = AMOVQ;
- if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd) // ELF uses FS
+ if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd
+ || HEADTYPE == Hopenbsd) // ELF uses FS
p->from.type = D_INDIR+D_FS;
else
p->from.type = D_INDIR+D_GS;
@@ -471,7 +470,6 @@ dostkoff(void)
p = appendp(p);
p->as = ANOP;
q1->pcond = p;
- q1 = P;
}
if(autoffset < StackBig) { // do we need to call morestack?
@@ -611,7 +609,6 @@ dostkoff(void)
p = appendp(p);
p->as = ANOP;
q1->pcond = p;
- q1 = P;
}
for(; p != P; p = p->link) {