diff options
Diffstat (limited to 'utils/6c/swt.c')
| -rw-r--r-- | utils/6c/swt.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/utils/6c/swt.c b/utils/6c/swt.c index b201c9ca..c0b4d844 100644 --- a/utils/6c/swt.c +++ b/utils/6c/swt.c @@ -9,7 +9,7 @@ swit1(C1 *q, int nc, long def, Node *n) if(nc < 5) { for(i=0; i<nc; i++) { - if(debug['W']) + if(debug['K']) print("case = %.8llux\n", q->val); gcmp(OEQ, n, q->val); patch(p, q->label); @@ -21,7 +21,7 @@ swit1(C1 *q, int nc, long def, Node *n) } i = nc / 2; r = q+i; - if(debug['W']) + if(debug['K']) print("case > %.8llux\n", r->val); gcmp(OGT, n, r->val); sp = p; @@ -30,7 +30,7 @@ swit1(C1 *q, int nc, long def, Node *n) patch(p, r->label); swit1(q, i, def, n); - if(debug['W']) + if(debug['K']) print("case < %.8llux\n", r->val); patch(sp, pc); swit1(r+1, nc-i-1, def, n); @@ -128,23 +128,6 @@ outstring(char *s, long n) } void -sextern(Sym *s, Node *a, long o, long w) -{ - long e, lw; - - for(e=0; e<w; e+=NSNAME) { - lw = NSNAME; - if(w-e < lw) - lw = w-e; - gpseudo(ADATA, s, nodconst(0L)); - p->from.offset += o+e; - p->from.scale = lw; - p->to.type = D_SCONST; - memmove(p->to.sval, a->cstring+e, lw); - } -} - -void gextern(Sym *s, Node *a, long o, long w) { if(0 && a->op == OCONST && typev[a->type->etype]) { @@ -523,8 +506,8 @@ align(long i, Type *t, int op) long maxround(long max, long v) { - v += SZ_VLONG-1; + v = round(v, SZ_VLONG); if(v > max) - max = round(v, SZ_VLONG); + return v; return max; } |
