From c31b56fda0684ad4ec8f25ded7bb878c095f97af Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 7 Aug 2020 22:34:42 -0500 Subject: [PATCH] using wasm local when possible again --- docs/plan | 2 +- include/onyxastnodes.h | 1 + include/onyxwasm.h | 5 ++ onyx | Bin 366456 -> 371888 bytes progs/alloc.onyx | 5 +- progs/stack_based.onyx | 43 +++++++++++- src/onyxchecker.c | 2 + src/onyxwasm.c | 156 +++++++++++++++++++++++++++-------------- 8 files changed, 158 insertions(+), 56 deletions(-) diff --git a/docs/plan b/docs/plan index b26d4beb..94de23d3 100644 --- a/docs/plan +++ b/docs/plan @@ -146,7 +146,7 @@ HOW: [X] Convert to using a proper stack based system - [ ] Be smart about when to use the stack versus use the wasm locals + [X] Be smart about when to use the stack versus use the wasm locals [ ] Array literals diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 63a1f95d..7844ecff 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -149,6 +149,7 @@ typedef enum AstFlags { Ast_Flag_Expr_Ignored = BH_BIT(8), Ast_Flag_Param_Splatted = BH_BIT(9), Ast_Flag_Param_Use = BH_BIT(10), + Ast_Flag_Address_Taken = BH_BIT(11), // Type flags Ast_Flag_Type_Is_Resolved = BH_BIT(8), diff --git a/include/onyxwasm.h b/include/onyxwasm.h index 4ef2ea38..e0b74e71 100644 --- a/include/onyxwasm.h +++ b/include/onyxwasm.h @@ -290,6 +290,8 @@ typedef struct DeferredStmt { AstNode *stmt; } DeferredStmt; +#define LOCAL_IS_WASM 0x8000000000000 + typedef struct OnyxWasmModule { bh_allocator allocator; @@ -321,6 +323,7 @@ typedef struct OnyxWasmModule { bh_arr(WasmDatum) data; bh_arr(i32) elems; + // NOTE: Set of things used when compiling; not part of the actual module u32 export_count; u32 next_type_idx; u32 next_func_idx; @@ -331,6 +334,8 @@ typedef struct OnyxWasmModule { u32 next_elem_idx; u32 *stack_top_ptr, *stack_base_ptr; + + b32 has_stack_locals : 1; } OnyxWasmModule; OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc); diff --git a/onyx b/onyx index 8a908bc8b4819ce7a7d153424cc8909528907acc..22752e469c94f02caed9df161847bdd893e2cde4 100755 GIT binary patch delta 141449 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�-pnQ4#8wc3;E`f?RwIiOSbDtZwV9yHS*T&EV(^k2x{aVU6#~eyjGQm9Vtdo z--_K;5*>I~vX{9)t$p@d%}^c2ZBuCM1=|~Y!S=>p7}&DG6yU{O#y-Ot-eq9mWR2)? zWdb`I;{Ct>M?VA=61}+TX8Ho4$}L#>rj_9^Yzb)d)*1XUXBPcv8s@+YE~* zs}>*@)vfdo!r{4okg%X|AN$Z#RjZ7}BRRi4M3we5N}mjsZiLdN!w!LrLrVH;$Gl6^ zVT(^BJydBk0XU>&OkjjG#}%s6$7fSo-&d4)n!!v64viS`0lSXHYQ!0x>iI>X5ffl@ zt)NdXE*bPIlIc0050Rx&WlqyBZgEgX7*52B10$|WT|aO;E0#p8c$yV?o?7vrSF07j z53P6yRx~X>`e?HBCqXL?z%&7LZD0j)hCq*2x~(?lb1a`%veSpiz>cU^hL(9H`|98$ z4GPiSJuD#|S>}gkai+UhaCaf5?hnACWa>0bwuZH$bYhJq$z{ga<3eMrF&dfn-&j(| zk&mAT4*QtZ=AX&rPeioB-=XME_-A)M8)U$3X{Ge;Lr>VJ@g`?>JM;e!lCnSmdG#mq zNe+MiGCg`hKyN=yCb*i8Z^@cBas1;VLt!*KPN$^Te#k*ox%z%rY2Lu*!aPR5EZ|rK zvB}i0kTc>fjDE4-Cv$veNnfJ5zQkOFe|Bd%s!r`~HNrBA&wm(tPASOD?bc+^xQ|Ru z$BU;}4ev7uezJ7dMJi%bI1Jqm5lx33v6Qz*2Gge|V0(d{#cd0jJaKshweJb$7oN?TnRgaMtQJm2lFVL&~p|Jm4bnwlh!cRMD_*oru-Mw>tz z*)iEm6FBorrVhc)hJUg~CX%In&eEJ`C+QNS_rPRn0bs>_X#pJNYh~C^Bqwp#N=Cpo zKI|luvef2u+yj^l7HiL>EX2XRk^E}+X$VU@skvHZ8kZPtTUD8L25#&0C!Opm@$G1{ z>Tft3HbK92j$zX(UY#^kUc}*Q>gt#5sS`ZTlY2Y`W~!3~1AGunKN|kcwsA$GbWJ-% z;;#dXY5cQ0pO_j{k}DDoT4t}eH!VY5z9P|vO*_uNUu-XMX)<IP1N(iV zj0-C8vJtqrBC$gMv-X%0xO8nIbg6OGse1c*;l(02xuj`7kT70--L76eln}2l|Abrh z4W?vwGL@~6r9n?68rq;-DdXrpT{8p-(AKx9E6ub)m-a4(oZr&i;YhA(YgJ_Kxa$D+G^IbjwS zuJG$`HcTHHj|+0d``;3!+2!SGUKq?7!-qk_&+TOF@z0@_#ef8>M=b4@G$YWF$S?w9O@)|e}WNe05w%jvcL)g;N8mJjVs}LOkI7LQAKp z+JCRoe5Yu`gW8Ly2WqDT^&OzJ%kYFcB{7y8@6xD0V5d4g(f#7-@IURenUDPIz&0Zx zZ~9|+D+oaA%tYn}$V4wx;HGG7mNpXLKNp%=M|TPu&BJJ}HAvV!Vfu=Pd~H^H1v%R4 ze>h3)U25Dd%<`FKzeKrC*cPBnA4mA8QOeXuM@Fj~JdPdp3H#$?G^-PKWW#q1JjQKp z;h08jVz-3^-enD|y@Blq30y^$l?d)R#2WmBY&y`r!#UGyO2`04_dlSB=78P>mhefZ z;Tc-eJ7J%6s9JIa%;O)5JhTM2x3vTbp(U$WfJop_kNzJI?qW*$c9v8InvEs-fZoMw zn2X1k*e`MWdQ;!tP*Y&Tm>EGdaC=)DkPz6=bo4@l;7^0H#4vVx78AimQpTAP)jcI{n~mX zf&A=vG#b|gmb4Xa;UI8*T)rbhxzrsC!0#IZa&BQJWAW#>>ALY?w7E?Z%7ekM@%e+) zwx5kFCD2sZl}kI%#C_9I-ir>e?%-|t8bZFe)JIsNYLo4ZLj5fBjn(FBUq_u*Wf(p zNHIAbPqoYNn?-q~oh`d+FVJ|3QTLYd_Z#{l1InXLca6%!?N;MHyTB^;{~Jy3F#>xd zb;lldB*N)*m)ePjGYZumtNfE;$J36Pp0?q=0MB4`2TJxv=E4!|5nd0JY=V-{4copZ zSl3g>O0Jmw!>PcVa_s-{#6OjlV6)Sk?^8G(_qFS?>pM<0cLFi~T8-&>D&Y;|)Kk=V zA)D+^fxbUM-_^S-+ceWZoWB$FEhfNuNxZ5j;>5wU@omGkI#~bi2{v`ITf9=|;B8j( zBIueZ0szWh5g(kF{1{{<9F-Byi@siFDN{P7zx0I12gXgcxF7kB z-(UIvVr+Pprb_^ij#p>^*+wTEplsDfdL5ruPK@`}rxi^2Bq%4xyI1RYuo3eKnOd?b z$;jhbCBN=m?DGZy9vfcZaCw_!KRipt%`j4N{bEm^z4Ub3|jaoTsY>))d9F15_8}4EYxWKWGo~btN6qQ4U>Xua(|ob*!oaqf8oLh1JX0+w9L`P(Xd3LK@Ql@nO;ahI zf+?eOVM*N)BQU{sWIhZ3tok|IF$u%kE(WV%EN6U2Ikw+#y2{(#QGs@6%1MToGokLi;>VtxvCLQ{xU`{(PYKM;MywzyOdWQVf$q4~1P8C0hVK`A8 z2o4}sn3<&t_qIyj!ga$VoU!zD?9~PJp*5T>{&CkJj<~(84@d}nz%wpO7%AlMa-vu0 zMB@WSbYS2~U{oW^o$|oQ#?&x1;1T1-T5#zMx343QN0?Pw_0JftpaU_}$bkV%8@)Xn z-Zp#$b+Hd(_U8js?v)7@jH4S65^a~by{%(N2pp@e;CO`uoqGf`u@7Tr7Bmy%H_E>- zs|IYJ#40G&M4Ol=4Qn`uxGQE~U8DNvhk@N1>c{PE^&=tFFNbO%f$Uvzy*to9x6luh z)R{OKMcxVEocpdxQ2A6$rr5ELsf8q~&Iw#tP~ZzEIA$eSfx(i_B8u{3_DOwJ;}2SD(D?UIBW|n41*#FWYMfiU++-&+ zEJ9`A*Y*von?a6>+27|>>glB_7E2xT0zYuu*U|{4qDaxwxX7=alT``i@0y8@R#*5C zQAf;xSZhqa(}rrDER79(n_I}WLBcpKEh*0x4DJpwvnYni>3jZUq>R@rvh#9ux!M~v zodQ4kk1dGF+sz!W;oufn)^HgsYkAB*!qp7tm?@6kIc@jALEPT9wjn|N!z0l3$lqnlH~P*N+-@A5+BPmPgHdDii=Ad|W7*eFPjAbm9I05Ta)`yhWAqZN zhB!;c|Er@po(LQ3_n2jAJ;!}Dd9`^`L4ti;=#$QDLc-sI1k|B4 z$NX1<1T3t|PTYUk(&#yX)K$;d0uDUeG#tsAxz@Jd^ncN2@kQ8I{%w!Ieca!+bs!;Z z9nuLRLET4yWN8%%>i!wN#v@EP)jY{vABo3({WzOh9~cI2pJW5MEl7a35|7)11b8d) zxFbk_w-S##g9JMFFr8au+sjN(a(rBUv^x*jEAS1s#W$b(z48=_l+d{mBUOTS#F(~A zQ7#Tlhh5!=gJX#Tgs^NQ4_<472d{q^{V%C{>$E*lW#z%^VExLPF96{|^AA5N!!d?$ z9r>g-t+c}jFRO9PPkKKP_X64E5$hP+tR}97w2GgV?QkRQ8?wo>!YaFx&k7u}8ZS3o z{_%!wI6_m$8Pad#X!rn&^V^fBQ=yOQ%oG*dGfjAXGICUJ5* z$F@KEPF0yTIP~w2?S=B!riS}053F%%X@F*Fz}8yn0708Zu4S=n&@(Ku8rHGWG~0Ie zTUF4t{83yGls9f`UB=3fCbmJe(iiCA#9jZ-Xj7XGYe}+Lq$ta$*{KdMjH}F z0W%-Hhtq+ztq<#wFk0W%Lm+ewew^mONGiRtf!Sc$&RPKigjMm1g^0*mE`S9k`3z>Ta<1g#@kL==kN3JS6O2 zBmSc{i@U(}G4CkVfBdzIZZ(E!H#%59u@Tc6ZshRO-L^M=sXTWZR=e|_&rmZD1dTnpMBmaNT2UZGBq$-*LXLq(j z=C~8MTG49+S9gf$xWf+cfX6U#srbu}l(j+sLzY_3>2SM+T?yBTtz*%@#;qSJv6W=s z8L!40koV5O7Y`-)9$=$d|Lh{o{)gX&$HyG{p|jBEQ@_(uIR$r}9kHJ5TwIA~BFi}o zZO^$xug}E8m2;``?1E)e=kmPp>;WB4u}bpt*SVtdD(1a-CVtlDd7Vf(Z;-m9TJAW^ zeNP{`&QHa)|EK;WlBuyU6G)Up(5;s6I`t%k=i+YaFc9f=uqK|#*z_fR49tn=dJQF) zmFlr8-rP+zq$Z-qrjy`HG?m^CHYxdcC%pxJBqo>s8AMHbI-dL!Q`0Ad7?l2j#B`BeNVk%0r_yh5rz!mai8C08N;is{+xMP9ma-eS7iYa%TEgJSZg=3b7!43hmjiR|#(|PyeO3^T*CypJ!o} z6spdLE2RrD7+j7E_h$U?U$-exhF9F>bgY#1E|Ri59V?}$V`X_dmR`rRJRJ)-g^-=f z@^mb{1`<;RH7uz(4VjZER&3|4z6e!C57Z>9nEw}Es99Zn^j`w@xyL6?KmQ%LV-6C2 zxa=5|j&~w@INM6`0HKuqTJ8d*rFp`T{kqF*3O)y&jhrxKzu_=XY69{!+3)5)Co@m} zu;26MkU4!Uf?~g)W{zC?5R`=des2;LX~8-3Kj?N8sG9WQC^Gwl?j!&`M0xgy&RWX; z2sJoof1DeL*+zN?EZN!r5^+|VZ>-y&bdxYx4*BeVJ3lc`3+ye}Kje;L9~V~;x- zTtBHjy$(9Oc=W%WN;&?>{@G~+ckk{HV*=94F1ry)-j%S%@=l(HoF1Mot(a9#E*tOI zpTaDM;=ajJWtaVvSuUWR-aYU)=6yaJ_1SAjO3GV~>{+XvIq(s+vw_*ap4?RigY2?i zN#q{{`IfiyR7!D>A1c2FmtC-(&ylB`7_BxiT3K}~fX%w|r%u5iMyZXq(+CN@|A@TC zsAjwDJPLgWNtU-KP4{*~xj-nn0DtBz!~F`vwifI$c5XAMJb_p3R$JqiU*v!qYj^(~ zH7l3rZnF*aR~A=AUdmwyyZGg&POlkPAi!~)E}nBsAmr`=U_8-Ij|U^n=1qH*?R-jg z0t|~!0dxD4Q`7+%R;o?@>*Acx3^1&XnJqa8XgU~T%8xGkpBZ3S8^EwZhIO9-2a3S1 zHTKT2TqcEs%6NE{y-Q5%ZN7UAl;iL!*5Xv2hgaD^i=7XVxjbJg0o8+4&wM?j3$$3N zs8%_J+CYoFpH|qAQeguvb{;gS)j*3?Blat!3c$tA6rqLU{+~P52Qr5ZfY?f8C?`Oy z4S-m3RODt*)@8BWy_EGZ3+D1z`XJo0@^hwuDk_!AAIrkOLaCfp&W!ezG3R9Ds~9w< z_}1r6eowaziGY+n9EqvCKokH{meP=ekg_%)Wglk_ft0lYDchC~d;p}Z`T$5-%Lbw> zZ{_l>jm6npa7xsx_aD4P;bUifY2ahsIoW@>ur&R3@#HU^mj}Pvhn1ZWeva4Ki&fr% zu7o$C99@QYF~pU4Ulou3${Fqx=(Ss+XRi#i^8})9!=#2_2L_IHs}&-Z=F>s9+AQl% zCe5$zyA9X+X9>=0w>sx|ND!RYZjHU(!gcD`JgRWFeNx>@Az9SyTXq?)jhg*L@^10! zAIrdOr5?hFn(Nk_Ya=^n&)r67Rqe%1)NUiXQ+GT)s|I&Qb|V)*EqaMsnYCMsLq**e z6c78_8Ca8nTaNb;YDwJV*S86;224qBEh2-1I~No;eC_n?!zR&f_r#we#7gr$WDt}L z1ho;x&ETlIn(8#sN^{2)1nWyGeO)p8jlp+C+DMxsjxEmlM(|xv|Hf$$q+HyR_Le@a z_~l_|@6V5s1AQwDIVqsV?S7_2-Y0g=>z0Q($zmcigmwsJE0dEJx&$m&w^$56ah zo*=78YH0)o_AO`vnaY|Y$#&g(*^#!kIR z_TQBQ;MK|#=@Mxp7^;dq;U+UR#dp2~6bDcm2X+SsYjp9YGwe^$TFzO|E1@yAc4}z zLMY^Uepd!4jbj+lJkRgS0Hu-l3`%3BzWQ?N5tPOZP#Sr}OZ8b`#5cxmU|(2#=6k2A zC*T=B;+>!6j+DjX;t#mvA84n_J=__F5Lhz&WDc}j=olIb!5T9o`wj#{g#b5ZaE8}` zWM3)l{CqtF;Kn;aRpfaLR|de1%v_V_8D1FxH~st3}h`3sK(4ic4|k8e*z3vo=}Y$KsA1j z|KWr{HD<89+5Y1xoA8CcB&T zEm|c2)krT=d7j~w0aPQYT%KomWdPME)x}Cx^#z^FjL&U>m^6{N+c1 zYOMY#fNJz&kmY!D(PHA>KT!k;uMWIP?{BCGCEgO4ner@@SK6BkPS+dHKFsTm-YDap z0iIHCIUFnV{)UvS_ZT>HUOnV=_Z*~n-WFKX!>dLC_4FoV{O;wg2TyNr)=Y>l_YMYY zh37$irFSoSs=QYZaaG5Ru%VBDq0Da)Z*|xPJkiWfeQi z>UEG~I$tD3I$uz1+cnmJ6qsvw1@pi|*vXEbkFRyDfh&1EfisPP%Xm5MGF~p_<<9GH zY4xu_7hA;+SM3B5u@h9pPEZj$L4|hW`Z3x`{l?BxAk;(*1&106g+P#FkF5$pL==LG zCEJP=T9128${-K~)GMq7YO>A*hH#P^vJQilKfcWzd5CyV(i$>M9OIL>#Dy zI8YGhqhFA52BeNN$0f;(;WM zM}y1`Kx#meoJX)2fK|jXMb&~ZYA;(DS3E9ZKpV|jXaKm+VW#?lE(J)61RPWlaEwA# z9As27h=@a=A`XFyI0VW#G_E287$go&Dg#7B2B?S(P!SnRFWVHa_JMX3NAISYK}0fx ziev^A$qdREP>}(C(Tq?8h=>SK5fPvwB0&Az1FMe`G!Vx^Mm23QrGlhL&_J1>8q)bAW0b<{Y9Zxem%Q$fFy|uYd|h@6ySrvHmHR+aP${%45k(qDe#Lpw)*NgsEE~| zB36TnSPd$yO1LhdqpzkGV>FT?MuQ5C21pWzV>KEeNouq&Rs$s|wE7G?!NFUt#?fEA zF^EThWzIG(P$!xMI}s~;dDet?Sj0V?7LDEi?`^g(d!ul6ZfC(KBSI07nY z5;ve7Pqf0DijmLu7Qsn8 zOcvXnc)5Zkd8gt=%6k~CEA5>FV_a_rhLdhy8>W64tDFKe07;q%Q5a$FvJ>NwVGu!* zGI!fGLJ%Y=bB|rq#ybQ_%G_($>_~#In`i!jmrqFWWw*?Ib`4z~wApI~b-!IRkGBYt zl-X$4ED#ASod@h125b-y2g^KY*X++b1WC#~RNN&VZ}kayRFS#e&RvZ=`Wym;BzkP+ zWkv;rB!)CqeLH^fl+6qoASA5-e+5tOs>uK$=@;fELQ)22gR!r+@;nmp>S>$p9f~Jjd3G{HrOD*Z^b!5g~~RlPOwMP7N6#B&`E62g7ON0?sPvoCMt(m!FGEG@6P8w6KtZo~gcncri}7uOEOlvX%L z;W~8)`sqcb`P>9NM$0g&V z?8U_+lkxJw|E|LvFja9W7p`_ipHY_X#Z?SJX3C~BTrNtzU%V|Duk^33!9=lV*_n_Q zPZNPD+pFwJ5DCj=+N<~{E8UhLFlBo?9Z2ck1;CW8EE_Tim0SRrybDLNstW*_EP08E|$FnNbIaK0%3Or8KRc>=)X2>_EP08E|$FnN!l);D^?M){m@ z3IdZS2uz+JFnNN&w~Dw^#p*)696Vp0GK=hVDbcj$rAu3PXL%a0bue3fXO2OlfREA z2u$8k2wLc!J_!g+o**!Jg23bn0+S~QOdb%JtOGp(VDg@X$4fl{VDbcj$rAu3PXL%a z0bue3fXNd8CQksEJONv`Z}J3y$$JZC-RubflP3U7o&Yd;0>I=60Fx&GOx`u<{BQRJfXRDy zEb9NAo**!Jg23bn0+S~QOr9Vxd4j;?2?CQh73%Nz1c1pC047fWm^=Ys@&tg%I~Qg> z;tfM>f7DwBvmWyVfXNd8CQksEJON+p=FLIB8 zkafoFmzC^ibax~BRplCTDZo4g5vNCR^39yv?UI;sV z3T(>$AVe%pfTiq@LIeOy*`J(eDNX>EvcKeZr8s`Yl-(+;;#QhV6WL#TQcpb3&DJac zmdM6cP+DBhyjcJ&RU)xM0G6@IU;N~D_dL{Q2CL5bAdJQ0+#Kv1HPBlAR1$^t>@7*HqX1wknb1f^9VPt6lSDGLN8 zZn~__6G15p1SKE$F3J-@DGLOpHK4A@6G184W>MdCU7fxNYx)9g)X!$Q0}6Jcrw<2WDevkM++TFbr~7 z+OYv-l?li7hRT_|Ujoj4f=_bW$$@aO4&*j4)k zel*!+UuBn(#pyWjWWVX}nki2lDSQ=ja`TzA?KHbW#CNPcxp_UK{9C)nG6=wDq9-^1 ziNQR}?#(DW9i1mzBW{_2lqNgF3btETRX&fl$3MGs_uDb)fEC5)357p1_VOkF2XZyYE9^5f^I(}|%S%%Lg`r5rW!$7{R z*?ad7^b9gxNb+*i#yOWl7U|b zk9^ZsbB^z(=8VC2(f23r776S8k)N8|72UXBgTFd?eR-qD&RgE_T~yrE1CPFA?`Gv# zr^Ra2LWum?o!NT476ibv*t#JnK_A}o8FvsqZ&){4sYTWf4>LMf_F}loepPd)8msNj zqmf-BbmeG`(1!NWe8P=gxqwZ<>G0RJ*YOD|c5M$w5;nEh{VoOirrfN4WH=Qiu;(sF zIKOoLRu#M?H19f^w*()VpDzW#mykw{VvRbo^u3>y`7atK6xT1IF-IEinWNA5*%FSN z&klg~^TJ;=S9jw=om8oF66~J{R)E^THa@TP&qh3KG@%;a0AJ6ixOpR0+;VG&*IA3} zs@Tq|eo&dF%Y{LAAcsHtwi>eRAPV*=r&rBtE{$4p=3{AEg@xascI?TZRYEbZT=Ewzx z58ldO^T;V+I6IZ#Ub_S#nc`?Yejhk%uS_K?zE!~^!%#1WD3!Z1)t7Q<$^@bsfxm@2 z|E%UMD~|?*-C?Ode6K(nU%#Co@f1yvcRAmkjf5qs?#y!KH>w6c$)DZ%P^e}}YKSpk zwJb@EXBHGGmDo!oBA27S+xw>y962X_O`YRQ8zy60ZJ}neCJ5{BTxWYtYcB=XC6r5o%)8w{^gdH_Dt0gw}oFFu7{pNa1 zRO~%cJ%3cUtce>ih}dIO6%5{9U#i09Q192F-m$4>)w{vy9h;h=TGl~}kLZjGJ<*~b zpOP6LgLk-PPY9@)*7#RY`R!(GV;g;FYVv1y4#K0bhOIf(N5i(<8ow3;f;~8uym5;f z#<%GBXLlA2Kh9hk9Auc;#I^vsQ5(YsziDpg<`X>V{ZHtffY%(sF`U;xrCC1dR91;@Df=_SjxmTY=1jbf z)p1Kn4-)r%rlLBGX1j9~`mv@2E#6Wxk^}kO5WLv1~tCDhxV2w_u7UODs zDS9;fgOcQW|5Fv)P5*<1YeKOfl=N4zGe>STY~LE~Er;O6vyw6m%R&hJW-1N&r& zJU5`9Xs#F_^bkHrz_sRo(1d47sOfjb-FnSCXKPy+2W(J_<|Vo6xm&C4Eh()U$OZ!%UUY{$O3n*kJ5b zzt$T&{Ep@781SUjkp*h#hQQE8YUn*`XRKpSt8oun)uC1F%zvp>uY^{ei`l;hykk47 zI<~W_qhzeVtyz}_T8&kgZ)eq&!F^*@XT++ZXpQzljaBJKYSoEhm%Ic|8fw)-wTknI zrkj1%*M({q(Wx|C3xjZB4ky*%fG)l7u}Ll}(FgX9SsJ|q13TwV;unkdF(r1lkJSVX z=fQyhQ|#RGHYp@ioWIp6}>4G-Hd0jCO+PPr9XQmRCHC< zR?@1fW;X3tBloA88aHyNQH{|_{@7S&L{yJ|o%Ou3B)RAN=Bw-(su!)FIE)jBErt8l z0?ODiQ>%1k$q=KUNs6Shq($krrsFWn0RJS?>~uyR|Go3vYDW5L#>iF%tFu{GI1yS47J>TXSrQLpdyRn4zS zqh?XdlEp__wjDsR&2L`Ja&$`MO27LmBOO+*i}zNmdyd8ozgvgJ3y7d7eK(EPW?ALJM@RDtRwZ zvS?(Jv2CuA+XBZvN@f`fdGWq+N7jHx)QHpGQ6tRP>8MnLu>hj+d?YE4s_358s7L%{ zJ+0~r=p)I|K|s~4N0QSt0S`wq1U%Yh*KFhOs)$|BCwmyXnjd42^g^<`y2WAYnaN1G zDw%9DHtyCnnLCI^9yea@4q9A* zCkF&lO8NfRD#fTb8{hne;cC`QLe=0OCTc8Ed)($g9I^l4HzMPm{b@ye2t0 zaBTczjQ^@+^1Xj(?5_^x?Ta-mmA5KcqXsR|{Hv06^NC7{3ZRiXEosKirOgeT_nwh7 zLlS0E1=ihTlF93hf~lc`HKBrI0tMjTod&H;CPx{5^my`z8BoZ-68ydiw9LF#Cb3*W zgXT7!OaoRX+tkCQR^!Jk%YMlczDvF1f2x&Y=Fnddv*e4fyuXK*sBCT#Ruo8DB*_Yu1->(AWq zYFT30W0D@f_i#Gy^sUwl4c9Wm#T}kzw++I_C%f~>ig<~wKN_xs3|Dt}p z(zjG&Pyk~>t{s!zXKMM+wOU^_Y=N+S!PWxjcS-hOI5FR{MoxNLMLlQ~^8RkY{pBqy zEqk7}H4fz9Nv8P0M&o%bxi1q^awFbQ5j}%>f!{eB%eY!}UncTqHqy?b`!X?D#+R3jFMh|v#+jEA)49%#dSjeoZlxX{n-fM6hIjb`1b-Xqo^)}yCi<(F%f-uE6AkL*B6V_o=;Xudq}6yYd+Y1f zg)9E1F1#K}zBH74eWEWV%jML-$&0tGjJ|zI)XUheP_stW#EqK$LN(8d8V)^c5`)w) zt$k|}%|YekI!<+4v#k##Sri)kNP+xzTU+fjqNdJf z9r}&Rec?rw+hyu;q1fLfYNDq8CQ%vN&ZV-nRG*0Amz zyPc^(-|K4QV_0_D10-=dx46^xgl&t-pAJyrT2{PWlLbN|2|+a=K^mHb$4~9aAC;DjHUaphS;faFI&KEVUV7(ch z7_FlX9)||96%19GkNyubxfG*@4)p^|jnJWqq1y-@niv%doz6a>Zz9VLmvf9zJfa&z z4-AF&O$<>(7swus-7g_~G^i0e9@Qkw+Iv%Ig@&}j2;DandUGhWA~1A8^MUMQ zfi!4BYBgR<8J@~`@mY=F{-KN?Lm6Huqv=#e%u5XRRmfZw+9M+L1&&1-6?&Wz+GW^8 z)Hn@cCNaQxt1?O>GFG#`BvnTF|6tg~km0M4WY}*valapV3fmY~(j|1nr7YX6@eEhJ zpLj;S?RwJX5IO-+vEVR^3=37{)_8*v+4M7=-x{Be4?p?Px}ZrSx-~vew*_WuG5s13 zDk+}w8R5_3(t~{YwCa2@jBqD(svn=l`)M#{s?yKm!&E6&HZVJYhzWe~l4n$@wEk!D zopl0(CE`!%*=O4i@VSKdK{+ZgOK8#P(+TYf6IG-~=jPI$oZ8Wxh6xg=hnmCIU z=AF1SkAsaB!$T`h3axl2KFG9VloR^jcj6NUpnt?Ov37m$#AoY(fp&Z}>aP8y%Dnk0 zjr-%F%(p|CPsVFaC2Tr|ec_Yw3H&M;&!Z~y$+&c>w@X@Wl5;3^vagevik zlA)oJ0pQp0JrN&l3|FB~#K)+ii>$`?ImA4yGIldE8bTSzhcX_H4-E|Eew^(;93QJf z<~G+(M#7``I!7#DX-!z#M>|m*~iBdeEH;|Csm1~|DjKx3KKZ7IzC>-?@HKM-e-S(e0%`g zA5}=rIU$}UYufq9z|uBfK;u`%@(_pzZ5<5f zc9q88Cu9C?&x@NC=mRuJ$03&lDQitUgAHJ`#;CiobY*DiXU5Xe@k&1Mv2?`J(eeIj z>0FJ`n84Ca+gLg-p7vSnD4u3np4uU>l}s>?uYU8GdL)#@yHg*{ z+|vV{iksD>MeG65S|&Cz(7!rmoZYN3#^%E?Jx^mr(yvaVN?K%%zlzrS-#N)~Cc|!F zhOJ?S@0}Ef6l8-#0VK^n^-yao96?_)(FK7}JgwLE-eQa!N`kqbkGiQc+ zKeySPO#Pob;mTNJ9~Sl_j)eTI$5qJ~{SQsC0DCp$h6TNuh8(npe42(FG?hq1CFWrQ z1{nlhlxWOxluMHY9V{AjY|ysRjz^s=HL}`D&^HB!E*ROv1mGAGfaZTNl+Qc;8zjSW zuGjDdqhx9z3ug{%(tTPuD~(%0;rMnZcd>PPdY?1gsIzqopU{SLT1@`X)8mov`GWu6J$q7c@%_@)c{|Y>GsR37o0=4w6az+HD zCvX{8Ig^9Zle*s-!~_c%yRZr_)WSRC5jFY&jP?ApI}gKpw-%mZk*!N-4%D6R^E5<%a|`1DV*}Y4=T@sL;~_p|A^eh~FAaw5CGT9$JT1nCJ#|$nLxu zoD=Bw9?n>G8}0iOjF0wgC;8pOYF1EN?aprk_SueKXTmhnF;as?1-duKNvM0M(&K#= z@C+w;yOD_9cdE2e%+(5=cLwNo^GvJpR>r8eBb(ei7ztf-^HoMdZ)cE7Sk&Z8JL>HW zR}l-EHnA(|?Tj()OzVH|px13`EMnR_4^HkqgwwGN;uTZ8d(!D7q?fv60v& z@+k2DBhkfI_dzH{r0d9PCY#g5tJ(f0#sr7rwFlJCb3+mTpa|Kem>3&orppuLwS=eZNfsSup$Ns(V{Z-k#&8z_h-M%I+CXfle{{ z_X+hk&c`caZ?ezWJy`J_{f>~eTuH@}?-;RWe)tSEt&K6+RUX@B8+ok%@@IFR41wcT z9s!QQZ6aXhxaHVv-nB)k<>OHEcAcukQfqpi(b-vq4Ku<9g~qL?Eb#AKYeZSoe?k?p zX9)k6jT%gB7is^8jUriIkcHoZt@%Cs@7(k2#yY6=9xciS9A3wNaINqr* z>y{YTZHL6zZv5bVXn$)~kH&6zfw{$U$~1jek5~mhi!a_aAztOxCbml-UVMC~c+X;P zcD!VtI%G;kGu3yqyW1XSgbfW)q<4l^GO4ZN@+prbOqHL8N{#!ToRt*x0B-oi(B`I_pBrxTG84S%KswFTZyZLo^X(@+o{`@}0HqQ$%R0eSwsc!|AZanrnbpZlNR zC;sRV`}E@Zr^OrWKi~iGY4Jx>c4_hCbK{@dTZ)IQiC=18bN|*g@l(5%rA|onK0T2d z&);#&??1H|{{dp|Kk2$S5P-kA|Htd&d)p;7*m-oU7mKHz8{fJ3yBp)@X965P=X=L4 zzO*J@>x^-(y#LUf;`8EOM`CnpSt9dPVqiz2JFZG66i>T1KB#|pD;AF>V+Zz1l=AAg z{7D@rzt{a=b)9>BRK*p?XE%G6yGb_elHDW=4J3dh9}JNA0Hg|p`anX90%|}Y1PCZZ zAtoS#x?p^KR6riWRB0iI)l~2SRu*4XkXA(D14vO&G+01CS}6~y7OU-Cub$)?xoPgNz=)>n|LW7w$LdY^jF24 z=`17v`EgzTbf8#2@JyhaZvAZF$}l->$_e@_Vn)AiL!e_;#3Z0lqcfez+2-2N$6gHt zb-^~is_uVf>jH_O6P)R#$&Onqqq8Z~{C5|H7nz(2gF*jTwsoeF&h0phaV86ja3*d} zapx_{{P|?z>$2VAJ2&u|%+Lp)3lyjRwJxwdoRK@3;?7Bm?4_u#+Z5=iOWz1Mg<=0B zAH~zAS5mZ*63$oDVJ*eFQ+x!4{Y43i57Tqr2ox>b9OxV})yfqxHYc_HwZIO4>-Q<# z=$!NyWmDcL3cu$nrgm)(L?|;1=q_Ax2|-L=0K}d*4Ds4N|u#URwLy!kW)#$ z*d~7l&zep#ZYJHSr#Y_t;kdUw&YVvC$^Ft&XDy{4Cg%{v?xqaq2xYG@Z7bGDxo=bK zkCgixiZydw6_Y6FbmyJlS;2n;94{h3&I$g@lYtE3th0jtnK?vh8O~P9@R!73jO)6+ zQ%YgyC5rW>&^wgrFUzL3TPgGvXL%lR5yFcpuaQEBs2^M6mFi5zq`kzwZ{GQfq7>qP zd@oV>b_%^r;kPKqxrAbesM}zQH_)JbHte*affW>giF$7}EQcFmegj3Hq_D30Ado+* z4O{RB)6zLt^B-RxV=`Dt;b2NM5VgOXidIshfl3aWzj=qbr4&%%2s-y- zDm+Aa6RC7Chk4;FxhQG3F61U=ayTazObc)2s6!MRL7Atx6;cOh8-@H`xnXiE;A3+3 znU+~};q@^$^Pj6vTb-=JZG&$s(iu(9*V868eTo6=H}G$3_8*_yLRgM>e{Ls>#J_9uD_|u zJ<@Z!Q0K@E)%8{N4b|hPSXiH0-G$ovf;To)@fu;NSBj_$W!S_Gw@s_5PaQ0wsTmnY zTyImPhV-WIvf7U5V_(2cJa}xj+J1I_Q@aA6OhJIAd8GSbWHfrbZ&c?IV`!Q<#P>-@An|D4;9OXkFS8Al#@;LYg@X}&Ec?eaNnF%Jm6+?U(cYA&8 zRNo}{81R-S^ywk=knh~o16R?teqSeja3~k)c^w_byOFwl7`-{-8yGvy?_9qMtIls( za2Px@XnAOx1#5BM9l&3B+j7iJQ|EzeT|Jy~uRO5bin-_LZr&-iTwu>73O)qM`tGt| zI`}B?c6t+=ON`iK`DGB#g?NQNZp6#}X1V91)eLd7F1&_veS7sq*HCHRlQ!#(uwh0% z&6zLKb6J{bw$iaUPp`oJ`{-@gQ1^t_Bj}FQ`R3y!r!LUZYq1PJZ^a zO?D@&PlQ+oNw@=CF3tQPxLl!nHFMK~yd|McSITTJLLULWl4>6^-U`7(K?}^!d9%F> zE`tFa1eZ||z66&s7rq5QGei~N&RLGFuZjP*8G37~7lO-JIK9C?{Lboo>&p)XmqA>n zfy=-(3z+k#gx1PiRh@gB?)Eqm$o2bQH3^LV6}CZ?qUPR&z6{P`mgF${8;4l^EZF}7 z`X-o&`#AHWiF^xz3~}a!Yz@hVJlHw7AQ z{Kk7iE>l2n=WNV6l#M?6%-)#92 zWN<0?l}}kv4PFWU)EWzVz|Iu#eNQvzZzw7N!EF%iSZ5P-fT4T9zg%y@Jn-Lw-}Wa9 zZibyT`uO$yWM9u>)3&|gtB6}2JYEUz4ZwMP3wR6e1+N8c2loak`61zMdzqUnDyI|t z!|JzD3e&@QtpayDrPqz(a(xeb-W)$q+={z4rt{!ArF;2AnVWp117&A$>5ADCTzY^G zvOKAzAL$q*kp8RF!1+g$TmJU;G}N8o(j#~=xO7*3!n4!b*x}dO4!v$Pbx41nxlcva zhmCswXzG$28MY_-I(oP<^Mjd&EA@*T<_( z{-g&wOfMQkxiz^gZ^IYhIh2e0W$so4Ee!6xvf;Bp4kYR_W+Mrg?KhwYw*?-RYQid$s^zgr48>oa@X zN`23Y(I55l5pzjp@!Ql?ikxE534F;%wv6B7W;JWY8GY%UQEqusu``gH;tC|V8VRIN zPBpk3*sfz9HMcu{4HTe`W~(+h*?>dIAZW|85nB zLVq*3{NBDFd|{(iY~l`>*^cV6YOZh}zuHWN$Z3JO;L_o;1YCaS?E@}-Z!ZV`7_BhJ z=B~zAuHUStDBWrfOw;o{sE>205+;I@DV6jb-KY!4aew_8y{ndT%l-nbPdC_$mBckW z1TKBlPU^XwI_cvFVT9Y5riXMk%rb@F+LyDYNB8--GCWo~Zr z0{rSJ1^)oNMYOvwU`GxKeFZ-Mh&50RJH)@>xHd=rWR7;W6{v`u*wxvprCFF=2RKF;RKRzbX` zljY+eUJEYgD86Wu?SWW&(H#VruG&Z4WYvCt+M6aPr(H$C(YbT*f(Np1u;BK3sFP)@z zTHZzty3i`NvKLw%vE?Fu_M3bT;C^}z_Oij{-1YY0a*+Id@M-K(XSQy3r+x)4J(#by zJgMZU?|38-^RCq`%*_KtzNC`SKaEH8IGo=fz~uyzjm%BcEpRK4`(s{TYl}WUiLclD z?rzYRNG|6NwBnwLsjrF4Z9d+ok$muJ3+;&y!17P^`uRTT>hrU^z?$=Vz8jz~ zM{+lVOXs>>mS3)VMSP3p??7yNHP3BAT4#ZnNv-;hU>;vZJ zQZW|*`7d4iC8{T$?@o4Ac368csD;xB3yy$ z!!w&!SJpQbI~Gs-N}Rwa?I4g#z?^Hi`v~a^4e5JQ!Q5Pc{-Vi_ zhQ6H4R0Dn#{jGaZf?386Ka6E7H0!Bzkq4-A7Ff+yNU*{r;Eczj1K1mUolT(Rob@+! z-BilG@BqYe>dG;gnKH2i5lD?TUkU&o0z7JgbBWQ5xzWX@%8MAY^Y$j-kIbl1ck~@?y;$gN2 z0_hC+i9SA!pVHq$ET@R^N=UA~;dj~-&&O?*4}JtM{Qg#~x`F=}6_sD(<$ydU%xz?`uon)|CvpR!n2I;sviy8b}viCZl^7A{{`RZ{fnr3y7$X%PeQj@ zOua(r!SLYEP(F-c?9&?q9jqT&Og*CB(5JT_tM@IY(g?;ech0ko#nELIl&wpaP`)R6 z|4dOWi$X}%GEXmF!Ue#f=dt;EHy=hY*17W`YqJcS*RC3 z%r^1Lbsp8bAEthRM>)Zg^0aJy><)iK_g+c~-=liyQtB64ZcPQ(>qnPT&yX_n1bM5| z`<7C#^txJmSkt82E~B35do%5qth^z5Bp-*4UT=?&>4SIpbM2Pw!tq?f(aLg;4td delta 139142 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
8y_Gk$HS%4dbm_>Wpr)lc(@e6 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 xYM6YF+Gp#@Fd=TZ91ia(id|^eWRt7C`=b|# rawptr; + Allocator :: struct { data: rawptr; func: alloc_proc; } -alloc_proc :: #type proc (rawptr, AllocAction, u32, u32, rawptr) -> rawptr; - alloc :: proc (use a: ^Allocator, size: u32) -> rawptr { return func(data, AllocAction.Alloc, size, 16, null); } diff --git a/progs/stack_based.onyx b/progs/stack_based.onyx index 52e495f0..f2f4f4ad 100644 --- a/progs/stack_based.onyx +++ b/progs/stack_based.onyx @@ -1,8 +1,10 @@ package main use "progs/print_funcs" +use "progs/alloc" use package printing +use package memory ret_val :: proc (x: i32, y: i32) -> i32 { big_arr : [128] i32; @@ -10,19 +12,56 @@ ret_val :: proc (x: i32, y: i32) -> i32 { return big_arr[127] + x + y; } +N :: 10 + +sumN :: proc (x: [N] i32) -> i32 { + s := 0; + for i: 0, N do s += x[i]; + return s; +} + +summing :: proc (x: ^i32) -> i32 { + s := 0; + for i: 0, N do s += x[i]; + return s; +} + +Vec3 :: struct { + x: i32; + y: i32; + z: i32; +} + +mag_squared :: proc (v: Vec3) -> i32 { + return v.x * v.x + v.y * v.y + v.z * v.z; +} + +stuff :: #file_contents "Makefile" + main :: proc #export { + heap_init(); print("Hello, World!"); print(cast(i32) __heap_start); + a := 12345; - arr : [5] i32; + arr: [N] i32; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; arr[4] = 50; + arr[9] = 123; + print(sumN(arr)); + print(summing(cast(^i32) arr)); + + v: Vec3; + v.x = 2; + v.y = 4; + v.z = 10; + print(mag_squared(v)); print(ret_val(10, 4)); - for i: 0, 5 do print(arr[i]); + for i: 0, N do print(arr[i]); } \ No newline at end of file diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 0b9a9c41..e5aace0b 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -584,6 +584,8 @@ CHECK(address_of, AstAddressOf* aof) { return 1; } + aof->expr->flags |= Ast_Flag_Address_Taken; + aof->type = type_make_pointer(semstate.allocator, aof->expr->type); return 0; diff --git a/src/onyxwasm.c b/src/onyxwasm.c index ad0d7811..2d617a1a 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -355,10 +355,17 @@ COMPILE_FUNC(assignment, AstBinaryOp* assign) { AstTyped* lval = assign->left; if (lval->kind == Ast_Kind_Local) { - u64 offset = 0; - compile_local_location(mod, &code, (AstLocal *) lval, &offset); - compile_expression(mod, &code, assign->right); - compile_store_instruction(mod, &code, lval->type, type_get_alignment_log2(lval->type), offset); + if (bh_imap_get(&mod->local_map, (u64) lval) & LOCAL_IS_WASM) { + u32 localidx = (u32) (bh_imap_get(&mod->local_map, (u64) lval) & ~LOCAL_IS_WASM); + compile_expression(mod, &code, assign->right); + WID(WI_LOCAL_SET, localidx); + + } else { + u64 offset = 0; + compile_local_location(mod, &code, (AstLocal *) lval, &offset); + compile_expression(mod, &code, assign->right); + compile_store_instruction(mod, &code, lval->type, type_get_alignment_log2(lval->type), offset); + } } else if (lval->kind == Ast_Kind_Global) { i32 globalidx = (i32) bh_imap_get(&mod->index_map, (u64) lval); @@ -558,15 +565,20 @@ COMPILE_FUNC(while, AstWhile* while_node) { COMPILE_FUNC(for, AstFor* for_node) { bh_arr(WasmInstruction) code = *pcode; - // i32 it_idx = (i32) bh_imap_get(&mod->local_map, (u64) for_node->var); - AstLocal* var = for_node->var; - + u64 tmp = bh_imap_get(&mod->local_map, (u64) var); + b32 it_is_local = (b32) ((tmp & LOCAL_IS_WASM) != 0); + u32 it_idx = (u32) (tmp & ~LOCAL_IS_WASM); u64 offset = 0; - compile_local_location(mod, &code, var, &offset); - compile_expression(mod, &code, for_node->start); - compile_store_instruction(mod, &code, var->type, type_get_alignment_log2(var->type), offset); - //WID(WI_LOCAL_SET, it_idx); + + if (it_is_local) { + compile_expression(mod, &code, for_node->start); + WID(WI_LOCAL_SET, it_idx); + } else { + compile_local_location(mod, &code, var, &offset); + compile_expression(mod, &code, for_node->start); + compile_store_instruction(mod, &code, var->type, type_get_alignment_log2(var->type), offset); + } WID(WI_BLOCK_START, 0x40); WID(WI_LOOP_START, 0x40); @@ -574,10 +586,13 @@ COMPILE_FUNC(for, AstFor* for_node) { bh_arr_push(mod->structured_jump_target, 1); bh_arr_push(mod->structured_jump_target, 2); - offset = 0; - compile_local_location(mod, &code, var, &offset); - compile_load_instruction(mod, &code, var->type, offset); - // WID(WI_LOCAL_GET, it_idx); + if (it_is_local) { + WID(WI_LOCAL_GET, it_idx); + } else { + offset = 0; + compile_local_location(mod, &code, var, &offset); + compile_load_instruction(mod, &code, var->type, offset); + } compile_expression(mod, &code, for_node->end); WI(WI_I32_GE_S); WID(WI_COND_JUMP, 0x01); @@ -586,19 +601,27 @@ COMPILE_FUNC(for, AstFor* for_node) { compile_statement(mod, &code, stmt); } - offset = 0; - compile_local_location(mod, &code, var, &offset); - offset = 0; - compile_local_location(mod, &code, var, &offset); - compile_load_instruction(mod, &code, var->type, offset); - if (for_node->step == NULL) - WID(WI_I32_CONST, 0x01); - else - compile_expression(mod, &code, for_node->step); - // WID(WI_LOCAL_GET, it_idx); - WI(WI_I32_ADD); - compile_store_instruction(mod, &code, var->type, type_get_alignment_log2(var->type), offset); - //WID(WI_LOCAL_SET, it_idx); + if (it_is_local) { + WID(WI_LOCAL_GET, it_idx); + if (for_node->step == NULL) + WID(WI_I32_CONST, 0x01); + else + compile_expression(mod, &code, for_node->step); + WI(WI_I32_ADD); + WID(WI_LOCAL_SET, it_idx); + } else { + offset = 0; + compile_local_location(mod, &code, var, &offset); + offset = 0; + compile_local_location(mod, &code, var, &offset); + compile_load_instruction(mod, &code, var->type, offset); + if (for_node->step == NULL) + WID(WI_I32_CONST, 0x01); + else + compile_expression(mod, &code, for_node->step); + WI(WI_I32_ADD); + compile_store_instruction(mod, &code, var->type, type_get_alignment_log2(var->type), offset); + } compile_deferred_stmts(mod, &code, (AstNode *) for_node); @@ -939,9 +962,21 @@ COMPILE_FUNC(expression, AstTyped* expr) { } case Ast_Kind_Local: { - u64 offset = 0; - compile_local_location(mod, &code, (AstLocal *) expr, &offset); - compile_load_instruction(mod, &code, expr->type, offset); + u64 tmp = bh_imap_get(&mod->local_map, (u64) expr); + if (tmp & LOCAL_IS_WASM) { + WID(WI_LOCAL_GET, (u32) (tmp & ~LOCAL_IS_WASM)); + } else { + u64 offset = 0; + compile_local_location(mod, &code, (AstLocal *) expr, &offset); + + if (expr->type->kind != Type_Kind_Array) { + compile_load_instruction(mod, &code, expr->type, offset); + } else { + WID(WI_I32_CONST, offset); + WI(WI_I32_ADD); + } + } + break; } @@ -1256,7 +1291,8 @@ COMPILE_FUNC(return, AstReturn* ret) { } } - compile_stack_leave(mod, &code, 0); + if (mod->has_stack_locals) + compile_stack_leave(mod, &code, 0); WI(WI_RETURN); @@ -1386,6 +1422,13 @@ static inline b32 should_compile_function(AstFunction* fd) { return 1; } +static b32 local_is_wasm_local(AstLocal* local) { + if (local->flags & Ast_Flag_Address_Taken) return 1; + if (local->type->kind == Type_Kind_Basic) return 1; + if (local->type->kind == Type_Kind_Pointer) return 1; + return 0; +} + static void compile_function(OnyxWasmModule* mod, AstFunction* fd) { if (!should_compile_function(fd)) return; @@ -1433,31 +1476,37 @@ static void compile_function(OnyxWasmModule* mod, AstFunction* fd) { // If there is no body then don't process the code if (fd->body != NULL) { - // // NOTE: Generate the local map - i32 localidx = 0; + // NOTE: Generate the local map + u64 localidx = 0; for (AstLocal *param = fd->params; param != NULL; param = (AstLocal *) param->next) { - bh_imap_put(&mod->local_map, (u64) param, localidx++); + bh_imap_put(&mod->local_map, (u64) param, localidx++ | LOCAL_IS_WASM); } - // static const WasmType local_types[4] = { WASM_TYPE_INT32, WASM_TYPE_INT64, WASM_TYPE_FLOAT32, WASM_TYPE_FLOAT64 }; + static const WasmType local_types[4] = { WASM_TYPE_INT32, WASM_TYPE_INT64, WASM_TYPE_FLOAT32, WASM_TYPE_FLOAT64 }; - // // HACK: This assumes that the order of the count members - // // is the same as the order of the local_types above - // u8* count = &wasm_func.locals.i32_count; - // fori (ti, 0, 3) { - // bh_arr_each(AstLocal *, local, fd->locals) { - // if (onyx_type_to_wasm_type((*local)->type) == local_types[ti]) { - // bh_imap_put(&mod->local_map, (u64) *local, localidx++); + // HACK: This assumes that the order of the count members + // is the same as the order of the local_types above + u8* count = &wasm_func.locals.i32_count; + fori (ti, 0, 3) { + bh_arr_each(AstLocal *, local, fd->locals) { + if (!local_is_wasm_local(*local)) continue; - // (*count)++; - // } - // } + if (onyx_type_to_wasm_type((*local)->type) == local_types[ti]) { + bh_imap_put(&mod->local_map, (u64) *local, localidx++ | LOCAL_IS_WASM); - // count++; - // } + (*count)++; + } + } + + count++; + } - i32 offset = 0; + b32 has_stack_locals = 0; + u64 offset = 0; bh_arr_each(AstLocal *, local, fd->locals) { + if (local_is_wasm_local(*local)) continue; + + has_stack_locals = 1; u32 size = type_size_of((*local)->type); u32 align = type_alignment_of((*local)->type); if (offset % align != 0) @@ -1471,9 +1520,14 @@ static void compile_function(OnyxWasmModule* mod, AstFunction* fd) { offset += 16 - (offset % 16); // Generate code - compile_stack_enter(mod, &wasm_func.code, (u64) offset); + if (has_stack_locals) + compile_stack_enter(mod, &wasm_func.code, (u64) offset); + + mod->has_stack_locals = has_stack_locals; compile_function_body(mod, &wasm_func.code, fd); - compile_stack_leave(mod, &wasm_func.code, 0); + + if (has_stack_locals) + compile_stack_leave(mod, &wasm_func.code, 0); } bh_arr_push(wasm_func.code, ((WasmInstruction){ WI_BLOCK_END, 0x00 })); -- 2.25.1