os

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

commit 30bb17b6474bda34fc8ca30a56842091749835a6
parent 9bab1cf982e1112a7d12ba6e272ca17a7319923e
Author: erai <erai@omiltem.net>
Date:   Wed,  9 Apr 2025 21:02:25 -0400

bootstrap

Diffstat:
Mcc0.c | 238++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 120 insertions(+), 118 deletions(-)

diff --git a/cc0.c b/cc0.c @@ -4588,11 +4588,10 @@ u zdie(u vmsg) { v17; return 0UL; } -u zdolex(u va, u vname) { +u zdolex(u va, u vname, u vout) { u vl = 0; u vfd = 0; u vtok = 0; - u v5 = 0; u v6 = 0; u v7 = 0; u v8 = 0; @@ -4634,66 +4633,67 @@ u zdolex(u va, u vname) { u v44 = 0; u v45 = 0; u v46 = 0; - v5 = (u)zsetup_lex; - v6 = va; - v7 = ((u(*)())v5)(v6); - vl = v7; - v8 = (u)zopen; - v9 = vname; - v10 = 0UL; + u v47 = 0; + v6 = (u)zsetup_lex; + v7 = va; + v8 = ((u(*)())v6)(v7); + vl = v8; + v9 = (u)zopen; + v10 = vname; v11 = 0UL; - v12 = ((u(*)())v8)(v9, v10, v11); - vfd = v12; + v12 = 0UL; + v13 = ((u(*)())v9)(v10, v11, v12); + vfd = v13; if ((s)vfd >= (s)0UL) goto b5; - v13 = (u)zdie; - v14 = (u)"open failed"; - v15 = ((u(*)())v13)(v14); - v15; -b3: v16 = (u)zopen_lex; - v17 = vl; - v18 = vfd; - v19 = ((u(*)())v16)(v17, v18); - v19; -b8: v20 = (u)zgettok; - v21 = vl; - v22 = ((u(*)())v20)(v21); - vtok = v22; + v14 = (u)zdie; + v15 = (u)"open failed"; + v16 = ((u(*)())v14)(v15); + v16; +b3: v17 = (u)zopen_lex; + v18 = vl; + v19 = vfd; + v20 = ((u(*)())v17)(v18, v19); + v20; +b8: v21 = (u)zgettok; + v22 = vl; + v23 = ((u(*)())v21)(v22); + vtok = v23; if (vtok != -1UL) goto b13; if (!*(u*)(vl + 48UL)) goto b23; - v43 = 0UL; -b24: if (!v43) goto b21; - v44 = (u)zdie; - v45 = (u)"problem"; - v46 = ((u(*)())v44)(v45); - v46; + v44 = 0UL; +b24: if (!v44) goto b21; + v45 = (u)zdie; + v46 = (u)"problem"; + v47 = ((u(*)())v45)(v46); + v47; b19: return 0UL; b21: goto b19; -b23: v43 = 1UL; +b23: v44 = 1UL; goto b24; -b13: v23 = (u)zfputs; - v24 = 0UL; - v26 = *(u*)(vl + 32UL); - v27 = vtok; - v28 = ((u(*)())v26)(v27); - v25 = v28; - v29 = ((u(*)())v23)(v24, v25); - v29; - v30 = (u)zfputs; - v31 = 0UL; - v32 = (u)"\011'"; - v33 = ((u(*)())v30)(v31, v32); - v33; - v34 = (u)zfputb; - v35 = 0UL; - v36 = *(u*)(vl + 64UL) + *(u*)(vl + 72UL) * 1UL; - v37 = *(u*)(vl + 80UL) - *(u*)(vl + 72UL); - v38 = ((u(*)())v34)(v35, v36, v37); - v38; - v39 = (u)zfputs; - v40 = 0UL; - v41 = (u)"'\012"; - v42 = ((u(*)())v39)(v40, v41); - v42; +b13: v24 = (u)zfputs; + v25 = vout; + v27 = *(u*)(vl + 32UL); + v28 = vtok; + v29 = ((u(*)())v27)(v28); + v26 = v29; + v30 = ((u(*)())v24)(v25, v26); + v30; + v31 = (u)zfputs; + v32 = vout; + v33 = (u)"\011'"; + v34 = ((u(*)())v31)(v32, v33); + v34; + v35 = (u)zfputb; + v36 = vout; + v37 = *(u*)(vl + 64UL) + *(u*)(vl + 72UL) * 1UL; + v38 = *(u*)(vl + 80UL) - *(u*)(vl + 72UL); + v39 = ((u(*)())v35)(v36, v37, v38); + v39; + v40 = (u)zfputs; + v41 = vout; + v42 = (u)"'\012"; + v43 = ((u(*)())v40)(v41, v42); + v43; goto b8; b5: goto b3; } @@ -20013,7 +20013,7 @@ b47: v35 = 0UL; goto b46; b13: goto b11; b10: if ((s)(*(u*)(vl + 88UL) - *(u*)(vl + 72UL)) < (s)(*(u*)(vl + 96UL) >> 1UL)) goto b16; - *(u*)(vl + 96UL) = *(u*)(vl + 96UL) * 2UL + 256UL; + *(u*)(vl + 96UL) = *(u*)(vl + 96UL) * 2UL + 16UL * 1024UL; v9 = (u)zalloc; v10 = *(u*)(vl + 0UL); v11 = *(u*)(vl + 96UL); @@ -27810,6 +27810,7 @@ u zmain(u vargc, u vargv, u venvp) { u v126 = 0; u v127 = 0; u v128 = 0; + u v129 = 0; vlink = (u)&vinput; v14 = (u)zsetup_alloc; v15 = (u)&va; @@ -27829,66 +27830,66 @@ u zmain(u vargc, u vargv, u venvp) { b4: if ((s)vi < (s)vargc) goto b8; vtmp = vinput; b79: if (!vtmp) goto b85; - v89 = 0UL; -b86: if (!v89) goto b83; + v90 = 0UL; +b86: if (!v90) goto b83; if (!vshow) goto b91; - v99 = (u)zshow_node; - v100 = verr; - v101 = vp; - v102 = ((u(*)())v99)(v100, v101); - v102; - v103 = (u)zfflush; - v104 = verr; - v105 = ((u(*)())v103)(v104); - v105; + v100 = (u)zshow_node; + v101 = verr; + v102 = vp; + v103 = ((u(*)())v100)(v101, v102); + v103; + v104 = (u)zfflush; + v105 = verr; + v106 = ((u(*)())v104)(v105); + v106; return 0UL; -b91: v106 = (u)zcompile; - v107 = vc; - v108 = vp; - v109 = ((u(*)())v106)(v107, v108); - v109; +b91: v107 = (u)zcompile; + v108 = vc; + v109 = vp; + v110 = ((u(*)())v107)(v108, v109); + v110; if (!vcout_filename) goto b97; - v110 = (u)zopen_coutput; - v111 = vc; - v112 = vcout_filename; - v113 = ((u(*)())v110)(v111, v112); - v113; - v114 = (u)zircout; - v115 = vc; - v116 = ((u(*)())v114)(v115); - v116; -b95: v117 = (u)zemit_builtin; - v118 = vc; - v119 = ((u(*)())v117)(v118); - v119; + v111 = (u)zopen_coutput; + v112 = vc; + v113 = vcout_filename; + v114 = ((u(*)())v111)(v112, v113); + v114; + v115 = (u)zircout; + v116 = vc; + v117 = ((u(*)())v115)(v116); + v117; +b95: v118 = (u)zemit_builtin; + v119 = vc; + v120 = ((u(*)())v118)(v119); + v120; if (!vout_filename) goto b103; - v120 = (u)zopen_output; - v121 = *(u*)(vc + 48UL); - v122 = vout_filename; - v123 = ((u(*)())v120)(v121, v122); - v123; - v124 = (u)zwriteout; - v125 = *(u*)(vc + 48UL); - v126 = *(u*)(vc + 88UL); - v127 = *(u*)(vc + 96UL); - v128 = ((u(*)())v124)(v125, v126, v127); - v128; + v121 = (u)zopen_output; + v122 = *(u*)(vc + 48UL); + v123 = vout_filename; + v124 = ((u(*)())v121)(v122, v123); + v124; + v125 = (u)zwriteout; + v126 = *(u*)(vc + 48UL); + v127 = *(u*)(vc + 88UL); + v128 = *(u*)(vc + 96UL); + v129 = ((u(*)())v125)(v126, v127, v128); + v129; b101: return 0UL; b103: goto b101; b97: goto b95; -b83: v90 = (u)zconcat_program; - v91 = vp; - v93 = (u)zparse; - v94 = *(u*)(vc + 16UL); - v95 = *(u*)(vtmp + 8UL); - v96 = verr; - v97 = ((u(*)())v93)(v94, v95, v96); - v92 = v97; - v98 = ((u(*)())v90)(v91, v92); - vp = v98; +b83: v91 = (u)zconcat_program; + v92 = vp; + v94 = (u)zparse; + v95 = *(u*)(vc + 16UL); + v96 = *(u*)(vtmp + 8UL); + v97 = verr; + v98 = ((u(*)())v94)(v95, v96, v97); + v93 = v98; + v99 = ((u(*)())v91)(v92, v93); + vp = v99; vtmp = *(u*)(vtmp + 0UL); goto b79; -b85: v89 = 1UL; +b85: v90 = 1UL; goto b86; b8: v26 = (u)zstrcmp; v27 = *(u*)(vargv + vi * 8UL); @@ -27992,21 +27993,22 @@ b67: if (!v70) goto b64; b69: v78 = (u)zdolex; v79 = *(u*)(vc + 0UL); v80 = *(u*)(vargv + vi * 8UL); - v81 = ((u(*)())v78)(v79, v80); - v81; + v81 = 0UL; + v82 = ((u(*)())v78)(v79, v80, v81); + v82; vi = vi + 1UL; goto b4; b71: goto b69; b64: if ((u)*(b*)(*(u*)(vargv + vi * 8UL) + 0UL * 1UL) != 45UL) goto b76; - v82 = (u)zdie; - v83 = (u)"invalid argument"; - v84 = ((u(*)())v82)(v83); - v84; -b74: v85 = (u)zalloc; - v86 = (u)&va; - v87 = 16UL; - v88 = ((u(*)())v85)(v86, v87); - vtmp = v88; + v83 = (u)zdie; + v84 = (u)"invalid argument"; + v85 = ((u(*)())v83)(v84); + v85; +b74: v86 = (u)zalloc; + v87 = (u)&va; + v88 = 16UL; + v89 = ((u(*)())v86)(v87, v88); + vtmp = v89; *(u*)(vtmp + 0UL) = 0UL; *(u*)(vtmp + 8UL) = *(u*)(vargv + vi * 8UL); *(u*)vlink = vtmp;