diff options
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r-- | src/cmd/gc/subr.c | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 403f3dd28..d6414f7eb 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -2404,102 +2404,6 @@ tempname(Node *n, Type *t) } void -stringpool(Node *n) -{ - Pool *p; - int w; - - if(n->op != OLITERAL || n->val.ctype != CTSTR) { - if(n->val.ctype == CTNIL) - return; - fatal("stringpool: not string %N", n); - } - - p = mal(sizeof(*p)); - - p->sval = n->val.u.sval; - p->link = nil; - - if(poolist == nil) - poolist = p; - else - poolast->link = p; - poolast = p; - - w = types[TINT32]->width; - symstringo->offset += w; // len - symstringo->offset += p->sval->len; // str[len] - symstringo->offset = rnd(symstringo->offset, w); -} - -Sig* -lsort(Sig *l, int(*f)(Sig*, Sig*)) -{ - Sig *l1, *l2, *le; - - if(l == 0 || l->link == 0) - return l; - - l1 = l; - l2 = l; - for(;;) { - l2 = l2->link; - if(l2 == 0) - break; - l2 = l2->link; - if(l2 == 0) - break; - l1 = l1->link; - } - - l2 = l1->link; - l1->link = 0; - l1 = lsort(l, f); - l2 = lsort(l2, f); - - /* set up lead element */ - if((*f)(l1, l2) < 0) { - l = l1; - l1 = l1->link; - } else { - l = l2; - l2 = l2->link; - } - le = l; - - for(;;) { - if(l1 == 0) { - while(l2) { - le->link = l2; - le = l2; - l2 = l2->link; - } - le->link = 0; - break; - } - if(l2 == 0) { - while(l1) { - le->link = l1; - le = l1; - l1 = l1->link; - } - break; - } - if((*f)(l1, l2) < 0) { - le->link = l1; - le = l1; - l1 = l1->link; - } else { - le->link = l2; - le = l2; - l2 = l2->link; - } - } - le->link = 0; - return l; -} - -void setmaxarg(Type *t) { int32 w; |