os

An operating system
git clone https://erai.gay/code/os/
Log | Files | Refs | README | LICENSE

commit 6128adac3d9f4dac846455639136cbc5f89b32b5
parent ff579235416fd8ab1d71782c281ae308af8b57b7
Author: erai <erai@omiltem.net>
Date:   Thu,  6 Feb 2025 00:07:33 +0000

fix varref fold

Diffstat:
Mbootstrap.sh | 2+-
Mcc0.c | 6+++---
Mir.om | 2+-
3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/bootstrap.sh b/bootstrap.sh @@ -5,7 +5,7 @@ LIBS="bufio.om lib.om alloc.om syscall.om" SOURCES="cc1.om type.om parse2.om parse3.om peglib.om as.om decl.om node.om peg.om parsepeg.om ir.om ircout.om" # Build the bootstrap compiler from c -gcc -std=c99 ${BOOTSTRAP} -o cc0 +gcc -O1 -g -std=c99 ${BOOTSTRAP} -o cc0 ./cc0 -P P_ cc3.peg -o parse3.om ./cc0 -P PEG_ peg.peg -o parsepeg.om ./cc0 ${LIBS} ${SOURCES} -o cc1 -n cc1.lines -G cc1.call diff --git a/cc0.c b/cc0.c @@ -36723,7 +36723,7 @@ b17: #line 2176 "ir.om" v_ret = v22; #line 2177 "ir.om" - *(unsigned long *)((v_ret) + (24UL)) = *(unsigned long *)((v_o) + (24UL)); + *(unsigned long *)((v_ret) + (24UL)) = *(unsigned long *)((v_a) + (24UL)); #line 2178 "ir.om" *(unsigned long *)((v_ret) + (64UL)) = *(unsigned long *)((v_o) + (64UL)); #line 2179 "ir.om" @@ -77863,7 +77863,7 @@ b34: } b44: #line 902 "ir.om" - v_ic = *(unsigned long *)((v_ic) + (32UL)); + *v_loopctx = *(unsigned long *)((v_ic) + (32UL)); #line 903 "ir.om" v54 = (unsigned long)&my_mkirblock; #line 903 "ir.om" @@ -77916,7 +77916,7 @@ b49: v73 = ((unsigned long (*)())(v69))(v70, v71, v72); b50: #line 917 "ir.om" - *(unsigned long *)((v_ic) + (32UL)) = v_ic; + *(unsigned long *)((v_ic) + (32UL)) = *v_loopctx; #line 917 "ir.om" goto b7; b45: diff --git a/ir.om b/ir.om @@ -2174,7 +2174,7 @@ func irexpr_fold(ic: *irfunc, o: *irop): *irop { // Eliminate *& redundant operations if (kind == IOP_LOAD && a.kind == IOP_VARREF) { ret = mkirop(ic, IOP_VAR, nil, nil); - ret.n = o.n; + ret.n = a.n; ret.filename = o.filename; ret.lineno = o.lineno; ret.colno = o.colno;