mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
Re-use (vgrow) b->ins vector in backend xxx_abi() fn's.
Removes last re-allocation of b->ins.
This commit is contained in:
parent
434cf5fdc4
commit
0ce9966c23
17
amd64/sysv.c
17
amd64/sysv.c
@ -656,9 +656,9 @@ void
|
|||||||
amd64_sysv_abi(Fn *fn)
|
amd64_sysv_abi(Fn *fn)
|
||||||
{
|
{
|
||||||
Blk *b;
|
Blk *b;
|
||||||
Ins *i, *i0, *ip;
|
Ins *i, *i0;
|
||||||
RAlloc *ral;
|
RAlloc *ral;
|
||||||
int n, fa;
|
int n0, n1, ioff, fa;
|
||||||
|
|
||||||
for (b=fn->start; b; b=b->link)
|
for (b=fn->start; b; b=b->link)
|
||||||
b->visit = 0;
|
b->visit = 0;
|
||||||
@ -668,12 +668,13 @@ amd64_sysv_abi(Fn *fn)
|
|||||||
if (!ispar(i->op))
|
if (!ispar(i->op))
|
||||||
break;
|
break;
|
||||||
fa = selpar(fn, b->ins, i);
|
fa = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n0 = &insb[NIns] - curi;
|
||||||
i0 = vnew(n, sizeof(Ins), PFn);
|
ioff = i - b->ins;
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
n1 = b->nins - ioff;
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
vgrow(&b->ins, n0+n1);
|
||||||
b->nins = n;
|
icpy(b->ins+n0, b->ins+ioff, n1);
|
||||||
b->ins = i0;
|
icpy(b->ins, curi, n0);
|
||||||
|
b->nins = n0+n1;
|
||||||
|
|
||||||
/* lower calls, returns, and vararg instructions */
|
/* lower calls, returns, and vararg instructions */
|
||||||
ral = 0;
|
ral = 0;
|
||||||
|
|||||||
17
arm64/abi.c
17
arm64/abi.c
@ -729,9 +729,9 @@ void
|
|||||||
arm64_abi(Fn *fn)
|
arm64_abi(Fn *fn)
|
||||||
{
|
{
|
||||||
Blk *b;
|
Blk *b;
|
||||||
Ins *i, *i0, *ip;
|
Ins *i, *i0;
|
||||||
Insl *il;
|
Insl *il;
|
||||||
int n;
|
int n0, n1, ioff;
|
||||||
Params p;
|
Params p;
|
||||||
|
|
||||||
for (b=fn->start; b; b=b->link)
|
for (b=fn->start; b; b=b->link)
|
||||||
@ -742,12 +742,13 @@ arm64_abi(Fn *fn)
|
|||||||
if (!ispar(i->op))
|
if (!ispar(i->op))
|
||||||
break;
|
break;
|
||||||
p = selpar(fn, b->ins, i);
|
p = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n0 = &insb[NIns] - curi;
|
||||||
i0 = vnew(n, sizeof(Ins), PFn);
|
ioff = i - b->ins;
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
n1 = b->nins - ioff;
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
vgrow(&b->ins, n0+n1);
|
||||||
b->nins = n;
|
icpy(b->ins+n0, b->ins+ioff, n1);
|
||||||
b->ins = i0;
|
icpy(b->ins, curi, n0);
|
||||||
|
b->nins = n0+n1;
|
||||||
|
|
||||||
/* lower calls, returns, and vararg instructions */
|
/* lower calls, returns, and vararg instructions */
|
||||||
il = 0;
|
il = 0;
|
||||||
|
|||||||
17
rv64/abi.c
17
rv64/abi.c
@ -587,9 +587,9 @@ void
|
|||||||
rv64_abi(Fn *fn)
|
rv64_abi(Fn *fn)
|
||||||
{
|
{
|
||||||
Blk *b;
|
Blk *b;
|
||||||
Ins *i, *i0, *ip;
|
Ins *i, *i0;
|
||||||
Insl *il;
|
Insl *il;
|
||||||
int n;
|
int n0, n1, ioff;
|
||||||
Params p;
|
Params p;
|
||||||
|
|
||||||
for (b=fn->start; b; b=b->link)
|
for (b=fn->start; b; b=b->link)
|
||||||
@ -600,12 +600,13 @@ rv64_abi(Fn *fn)
|
|||||||
if (!ispar(i->op))
|
if (!ispar(i->op))
|
||||||
break;
|
break;
|
||||||
p = selpar(fn, b->ins, i);
|
p = selpar(fn, b->ins, i);
|
||||||
n = b->nins - (i - b->ins) + (&insb[NIns] - curi);
|
n0 = &insb[NIns] - curi;
|
||||||
i0 = vnew(n, sizeof(Ins), PFn);
|
ioff = i - b->ins;
|
||||||
ip = icpy(ip = i0, curi, &insb[NIns] - curi);
|
n1 = b->nins - ioff;
|
||||||
ip = icpy(ip, i, &b->ins[b->nins] - i);
|
vgrow(&b->ins, n0+n1);
|
||||||
b->nins = n;
|
icpy(b->ins+n0, b->ins+ioff, n1);
|
||||||
b->ins = i0;
|
icpy(b->ins, curi, n0);
|
||||||
|
b->nins = n0+n1;
|
||||||
|
|
||||||
/* lower calls, returns, and vararg instructions */
|
/* lower calls, returns, and vararg instructions */
|
||||||
il = 0;
|
il = 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user