commit 1f7acbd88fe739798cc1fb83870690e88b5d04e9
parent ce72ad0ecdb43f6572c1febe8993d817f572f269
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Tue, 6 Oct 2015 13:22:46 -0400
specialize vdup into idup
Diffstat:
6 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/lisc/isel.c b/lisc/isel.c
@@ -662,7 +662,7 @@ isel(Fn *fn)
emit(i->op, i->wide, i->to, i->arg[0], i->arg[1]);
}
b->nins = &insb[NIns] - curi;
- vdup(&b->ins, curi, b->nins * sizeof(Ins));
+ idup(&b->ins, curi, b->nins);
}
if (debug['C']) {
@@ -705,7 +705,7 @@ isel(Fn *fn)
sel(*--i, fn);
}
b->nins = &insb[NIns] - curi;
- vdup(&b->ins, curi, b->nins * sizeof(Ins));
+ idup(&b->ins, curi, b->nins);
}
if (debug['I']) {
diff --git a/lisc/lisc.h b/lisc/lisc.h
@@ -277,7 +277,7 @@ Blk *balloc();
void emit(int, int, Ref, Ref, Ref);
void emiti(Ins);
int bcnt(Bits *);
-void vdup(void *, void *, size_t);
+void idup(Ins **, Ins *, ulong);
Ins *icpy(Ins *, Ins *, ulong);
/* parse.c */
diff --git a/lisc/parse.c b/lisc/parse.c
@@ -423,7 +423,7 @@ static void
closeblk()
{
curb->nins = curi - insb;
- vdup(&curb->ins, insb, curb->nins * sizeof(Ins));
+ idup(&curb->ins, insb, curb->nins);
blink = &curb->link;
curi = insb;
}
diff --git a/lisc/rega.c b/lisc/rega.c
@@ -430,7 +430,7 @@ rega(Fn *fn)
fn->nblk++;
sprintf(b1->name, "%s_%s", b->name, s->name);
b1->nins = curi - insb;
- vdup(&b1->ins, insb, b1->nins * sizeof(Ins));
+ idup(&b1->ins, insb, b1->nins);
b1->jmp.type = JJmp;
b1->s1 = s;
**ps = b1;
diff --git a/lisc/spill.c b/lisc/spill.c
@@ -402,7 +402,7 @@ spill(Fn *fn)
}
b->in = v;
b->nins = &insb[NIns] - curi;
- vdup(&b->ins, curi, b->nins * sizeof(Ins));
+ idup(&b->ins, curi, b->nins);
}
/* align the locals to a 16 byte boundary */
diff --git a/lisc/util.c b/lisc/util.c
@@ -67,10 +67,10 @@ bcnt(Bits *b)
}
void
-vdup(void *pd, void *s, size_t sz)
+idup(Ins **pd, Ins *s, ulong n)
{
- free(*(void **)pd);
- memcpy(*(void **)pd = alloc(sz), s, sz);
+ free(*pd);
+ memcpy(*pd = alloc(n * sizeof(Ins)), s, n * sizeof(Ins));
}
Ins *