mirror of
git://c9x.me/qbe.git
synced 2026-04-05 09:59:47 +00:00
idup(Ins **, Ins *, ulong) -> idup(Blk *, Ins *, ulong)
Always used this way and factors setting b->nins. Makes b->ins vector contract more obvious.
This commit is contained in:
parent
ca928f6f8d
commit
434cf5fdc4
2
all.h
2
all.h
@ -478,7 +478,7 @@ int isreg(Ref);
|
||||
int iscmp(int, int *, int *);
|
||||
void emit(int, int, Ref, Ref, Ref);
|
||||
void emiti(Ins);
|
||||
void idup(Ins **, Ins *, ulong);
|
||||
void idup(Blk *, Ins *, ulong);
|
||||
Ins *icpy(Ins *, Ins *, ulong);
|
||||
int cmpop(int);
|
||||
int cmpneg(int);
|
||||
|
||||
@ -828,8 +828,7 @@ amd64_isel(Fn *fn)
|
||||
seljmp(b, fn);
|
||||
for (i=&b->ins[b->nins]; i!=b->ins;)
|
||||
sel(*--i, num, fn);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
free(num);
|
||||
|
||||
|
||||
@ -508,8 +508,7 @@ split(Fn *fn, Blk *b)
|
||||
|
||||
++fn->nblk;
|
||||
bn = newblk();
|
||||
bn->nins = &insb[NIns] - curi;
|
||||
idup(&bn->ins, curi, bn->nins);
|
||||
idup(bn, curi, &insb[NIns]-curi);
|
||||
curi = &insb[NIns];
|
||||
bn->visit = ++b->visit;
|
||||
strf(bn->name, "%s.%d", b->name, b->visit);
|
||||
@ -711,8 +710,7 @@ amd64_sysv_abi(Fn *fn)
|
||||
if (b == fn->start)
|
||||
for (; ral; ral=ral->link)
|
||||
emiti(ral->i);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
} while (b != fn->start);
|
||||
|
||||
if (debug['A']) {
|
||||
|
||||
@ -545,8 +545,7 @@ split(Fn *fn, Blk *b)
|
||||
|
||||
++fn->nblk;
|
||||
bn = newblk();
|
||||
bn->nins = &insb[NIns] - curi;
|
||||
idup(&bn->ins, curi, bn->nins);
|
||||
idup(bn, curi, &insb[NIns]-curi);
|
||||
curi = &insb[NIns];
|
||||
bn->visit = ++b->visit;
|
||||
strf(bn->name, "%s.%d", b->name, b->visit);
|
||||
@ -791,8 +790,7 @@ arm64_abi(Fn *fn)
|
||||
if (b == fn->start)
|
||||
for (; il; il=il->link)
|
||||
emiti(il->i);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
} while (b != fn->start);
|
||||
|
||||
if (debug['A']) {
|
||||
@ -843,8 +841,7 @@ apple_extsb(Fn *fn)
|
||||
emit(op, Kw, i->to, i->arg[0], R);
|
||||
}
|
||||
}
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
|
||||
if (debug['A']) {
|
||||
|
||||
@ -306,8 +306,7 @@ arm64_isel(Fn *fn)
|
||||
seljmp(b, fn);
|
||||
for (i=&b->ins[b->nins]; i!=b->ins;)
|
||||
sel(*--i, fn);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
|
||||
if (debug['I']) {
|
||||
|
||||
3
load.c
3
load.c
@ -481,8 +481,7 @@ loadopt(Fn *fn)
|
||||
vgrow(&ib, ++nt);
|
||||
ib[nt-1] = *i;
|
||||
}
|
||||
b->nins = nt;
|
||||
idup(&b->ins, ib, nt);
|
||||
idup(b, ib, nt);
|
||||
}
|
||||
vfree(ib);
|
||||
vfree(ilog);
|
||||
|
||||
3
parse.c
3
parse.c
@ -582,8 +582,7 @@ findblk(char *name)
|
||||
static void
|
||||
closeblk()
|
||||
{
|
||||
curb->nins = curi - insb;
|
||||
idup(&curb->ins, insb, curb->nins);
|
||||
idup(curb, insb, curi-insb);
|
||||
blink = &curb->link;
|
||||
curi = insb;
|
||||
}
|
||||
|
||||
8
rega.c
8
rega.c
@ -439,8 +439,7 @@ doblk(Blk *b, RMap *cur)
|
||||
* the above loop must be changed */
|
||||
}
|
||||
}
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
|
||||
/* qsort() comparison function to peel
|
||||
@ -671,10 +670,9 @@ rega(Fn *fn)
|
||||
blist = b1;
|
||||
fn->nblk++;
|
||||
strf(b1->name, "%s_%s", b->name, s->name);
|
||||
b1->nins = &insb[NIns] - curi;
|
||||
stmov += b1->nins;
|
||||
stmov += &insb[NIns]-curi;
|
||||
stblk += 1;
|
||||
idup(&b1->ins, curi, b1->nins);
|
||||
idup(b1, curi, &insb[NIns]-curi);
|
||||
b1->jmp.type = Jjmp;
|
||||
b1->s1 = s;
|
||||
**ps = b1;
|
||||
|
||||
@ -642,8 +642,7 @@ rv64_abi(Fn *fn)
|
||||
if (b == fn->start)
|
||||
for (; il; il=il->link)
|
||||
emiti(il->i);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
} while (b != fn->start);
|
||||
|
||||
if (debug['A']) {
|
||||
|
||||
@ -244,8 +244,7 @@ rv64_isel(Fn *fn)
|
||||
seljmp(b, fn);
|
||||
for (i=&b->ins[b->nins]; i!=b->ins;)
|
||||
sel(*--i, fn);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
|
||||
if (debug['I']) {
|
||||
|
||||
6
simpl.c
6
simpl.c
@ -118,9 +118,7 @@ simpl(Fn *fn)
|
||||
--i;
|
||||
ins(&i, &new, b, fn);
|
||||
}
|
||||
if (new) {
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
}
|
||||
if (new)
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
}
|
||||
|
||||
3
spill.c
3
spill.c
@ -517,8 +517,7 @@ spill(Fn *fn)
|
||||
p->to = slot(p->to.val);
|
||||
}
|
||||
bscopy(b->in, v);
|
||||
b->nins = &insb[NIns] - curi;
|
||||
idup(&b->ins, curi, b->nins);
|
||||
idup(b, curi, &insb[NIns]-curi);
|
||||
}
|
||||
|
||||
/* align the locals to a 16 byte boundary */
|
||||
|
||||
11
util.c
11
util.c
@ -253,14 +253,15 @@ emiti(Ins i)
|
||||
}
|
||||
|
||||
void
|
||||
idup(Ins **pd, Ins *s, ulong n)
|
||||
idup(Blk *b, Ins *s, ulong n)
|
||||
{
|
||||
if (*pd)
|
||||
vgrow(pd, n);
|
||||
if (b->ins)
|
||||
vgrow(&b->ins, n);
|
||||
else
|
||||
*pd = vnew(n, sizeof(Ins), PFn);
|
||||
b->ins = vnew(n, sizeof(Ins), PFn);
|
||||
if (n)
|
||||
memcpy(*pd, s, n * sizeof(Ins));
|
||||
memcpy(b->ins, s, n * sizeof(Ins));
|
||||
b->nins = n;
|
||||
}
|
||||
|
||||
Ins *
|
||||
|
||||
Loading…
Reference in New Issue
Block a user