diff options
| -rw-r--r-- | amd64/sysv.c | 2 | ||||
| -rw-r--r-- | arm64/abi.c | 2 | ||||
| -rw-r--r-- | rv64/abi.c | 2 | ||||
| -rw-r--r-- | util.c | 5 |
4 files changed, 7 insertions, 4 deletions
diff --git a/amd64/sysv.c b/amd64/sysv.c index 5b559c1..ba4dc8e 100644 --- a/amd64/sysv.c +++ b/amd64/sysv.c @@ -670,7 +670,7 @@ amd64_sysv_abi(Fn *fn) break; fa = selpar(fn, b->ins, i); n = b->nins - (i - b->ins) + (&insb[NIns] - curi); - i0 = alloc(n * sizeof(Ins)); + i0 = vnew(n, sizeof(Ins), PFn); ip = icpy(ip = i0, curi, &insb[NIns] - curi); ip = icpy(ip, i, &b->ins[b->nins] - i); b->nins = n; diff --git a/arm64/abi.c b/arm64/abi.c index b9e6a14..fc23637 100644 --- a/arm64/abi.c +++ b/arm64/abi.c @@ -744,7 +744,7 @@ arm64_abi(Fn *fn) break; p = selpar(fn, b->ins, i); n = b->nins - (i - b->ins) + (&insb[NIns] - curi); - i0 = alloc(n * sizeof(Ins)); + i0 = vnew(n, sizeof(Ins), PFn); ip = icpy(ip = i0, curi, &insb[NIns] - curi); ip = icpy(ip, i, &b->ins[b->nins] - i); b->nins = n; @@ -601,7 +601,7 @@ rv64_abi(Fn *fn) break; p = selpar(fn, b->ins, i); n = b->nins - (i - b->ins) + (&insb[NIns] - curi); - i0 = alloc(n * sizeof(Ins)); + i0 = vnew(n, sizeof(Ins), PFn); ip = icpy(ip = i0, curi, &insb[NIns] - curi); ip = icpy(ip, i, &b->ins[b->nins] - i); b->nins = n; @@ -255,7 +255,10 @@ emiti(Ins i) void idup(Ins **pd, Ins *s, ulong n) { - *pd = alloc(n * sizeof(Ins)); + if (*pd) + vgrow(pd, n); + else + *pd = vnew(n, sizeof(Ins), PFn); if (n) memcpy(*pd, s, n * sizeof(Ins)); } |
