diff --git a/selfhost/cmd/w6a/asm.ww b/selfhost/cmd/w6a/asm.ww index cf933042..218a5512 100644 --- a/selfhost/cmd/w6a/asm.ww +++ b/selfhost/cmd/w6a/asm.ww @@ -23,10 +23,10 @@ export fn emitbyte(a: *asm_, b: u8) void = { let nc: u64 = a.textcap; if (nc == 0u64) { nc = 4096u64; }; nc = nc * 2u64; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < a.textlen) { nb[i] = a.text[i]; i += 1u64; }; - a.text = nb; + a.text = nb.ptr; a.textcap = nc; }; a.text[a.textlen] = b; @@ -60,10 +60,10 @@ export fn emitdatabyte(a: *asm_, b: u8) void = { let nc: u64 = a.datacap; if (nc == 0u64) { nc = 256u64; }; nc = nc * 2u64; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < a.datalen) { nb[i] = a.data[i]; i += 1u64; }; - a.data = nb; + a.data = nb.ptr; a.datacap = nc; }; a.data[a.datalen] = b; diff --git a/selfhost/cmd/w6a/main.combined.ww b/selfhost/cmd/w6a/main.combined.ww index 1fc9a699..045d7844 100644 --- a/selfhost/cmd/w6a/main.combined.ww +++ b/selfhost/cmd/w6a/main.combined.ww @@ -1760,10 +1760,10 @@ export fn emitbyte(a: *asm_, b: u8) void = { let nc: u64 = a.textcap; if (nc == 0u64) { nc = 4096u64; }; nc = nc * 2u64; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < a.textlen) { nb[i] = a.text[i]; i += 1u64; }; - a.text = nb; + a.text = nb.ptr; a.textcap = nc; }; a.text[a.textlen] = b; @@ -1797,10 +1797,10 @@ export fn emitdatabyte(a: *asm_, b: u8) void = { let nc: u64 = a.datacap; if (nc == 0u64) { nc = 256u64; }; nc = nc * 2u64; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < a.datalen) { nb[i] = a.data[i]; i += 1u64; }; - a.data = nb; + a.data = nb.ptr; a.datacap = nc; }; a.data[a.datalen] = b; @@ -2687,17 +2687,18 @@ fn bufinit(b: *buf, a: *arena) void = { b.a = a; b.cap = 256u64; b.n = 0u64; - b.p = amalloc(a, b.cap): *u8; + let np: []u8 = alloc([], b.cap)!; + b.p = np.ptr; }; fn bufgrow(b: *buf, need: u64) void = { if (b.n + need <= b.cap) { return; }; let nc: u64 = b.cap; for (nc < b.n + need) { nc = nc * 2u64; }; - let np: *u8 = amalloc(b.a, nc): *u8; + let np: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < b.n) { np[i] = b.p[i]; i += 1u64; }; - b.p = np; + b.p = np.ptr; b.cap = nc; }; diff --git a/selfhost/cmd/w6a/obj.ww b/selfhost/cmd/w6a/obj.ww index 8c28077c..6683b192 100644 --- a/selfhost/cmd/w6a/obj.ww +++ b/selfhost/cmd/w6a/obj.ww @@ -97,17 +97,18 @@ fn bufinit(b: *buf, a: *arena) void = { b.a = a; b.cap = 256u64; b.n = 0u64; - b.p = amalloc(a, b.cap): *u8; + let np: []u8 = alloc([], b.cap)!; + b.p = np.ptr; }; fn bufgrow(b: *buf, need: u64) void = { if (b.n + need <= b.cap) { return; }; let nc: u64 = b.cap; for (nc < b.n + need) { nc = nc * 2u64; }; - let np: *u8 = amalloc(b.a, nc): *u8; + let np: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < b.n) { np[i] = b.p[i]; i += 1u64; }; - b.p = np; + b.p = np.ptr; b.cap = nc; }; diff --git a/selfhost/cmd/w6l/main.combined.ww b/selfhost/cmd/w6l/main.combined.ww index 190a8d47..7ef734a7 100644 --- a/selfhost/cmd/w6l/main.combined.ww +++ b/selfhost/cmd/w6l/main.combined.ww @@ -1084,13 +1084,13 @@ fn emittext(l: *lnk, src: *u8, n: u64) void = { // Grow by mmap'ing a fresh region and copying. The old buffer // is leaked into the page allocator; for a linker run this is // trivial waste. - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < l.textlen) { nb[i] = l.text[i]; i += 1u64; }; - l.text = nb; + l.text = nb.ptr; l.textcap = nc; }; let i: u64 = 0u64; @@ -1106,13 +1106,13 @@ fn emitdata(l: *lnk, src: *u8, n: u64) void = { let nc: u64 = l.datacap; if (nc == 0u64) { nc = 256u64; }; for (nc < l.datalen + n) { nc = nc * 2u64; }; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < l.datalen) { nb[i] = l.data[i]; i += 1u64; }; - l.data = nb; + l.data = nb.ptr; l.datacap = nc; }; let i: u64 = 0u64; diff --git a/selfhost/cmd/w6l/obj.ww b/selfhost/cmd/w6l/obj.ww index 53358183..c559ee69 100644 --- a/selfhost/cmd/w6l/obj.ww +++ b/selfhost/cmd/w6l/obj.ww @@ -110,13 +110,13 @@ fn emittext(l: *lnk, src: *u8, n: u64) void = { // Grow by mmap'ing a fresh region and copying. The old buffer // is leaked into the page allocator; for a linker run this is // trivial waste. - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < l.textlen) { nb[i] = l.text[i]; i += 1u64; }; - l.text = nb; + l.text = nb.ptr; l.textcap = nc; }; let i: u64 = 0u64; @@ -132,13 +132,13 @@ fn emitdata(l: *lnk, src: *u8, n: u64) void = { let nc: u64 = l.datacap; if (nc == 0u64) { nc = 256u64; }; for (nc < l.datalen + n) { nc = nc * 2u64; }; - let nb: *u8 = rt.malloc(nc): *u8; + let nb: []u8 = alloc([], nc)!; let i: u64 = 0u64; for (i < l.datalen) { nb[i] = l.data[i]; i += 1u64; }; - l.data = nb; + l.data = nb.ptr; l.datacap = nc; }; let i: u64 = 0u64;