From b8714745dd480a2e1f89cda2883ebcf9e6a8c41d Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Thu, 15 Mar 2018 11:16:58 -0700 Subject: [PATCH] Add BRGT/BRLT FOR/NEXT optimization --- PLASMA-BLD2.PO | Bin 143360 -> 143360 bytes PLASMA-DEM2.PO | Bin 143360 -> 143360 bytes PLASMA-SOS2.PO | Bin 143360 -> 143360 bytes PLASMA-SYS2.PO | Bin 143360 -> 143360 bytes src/toolsrc/codegen.c | 16 +++++++++++++++- src/toolsrc/codegen.h | 12 ++++++++---- src/toolsrc/codeopt.pla | 10 ++++++++++ src/toolsrc/codeseq.plh | 2 ++ src/toolsrc/parse.c | 5 ++--- src/toolsrc/parse.pla | 4 +--- 10 files changed, 38 insertions(+), 11 deletions(-) diff --git a/PLASMA-BLD2.PO b/PLASMA-BLD2.PO index 096af24cd1813318120332a509063e3da91f1486..26f70593374db6bf555d6855d58746002867d7d2 100644 GIT binary patch delta 14637 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 S{(3ZOThk;tRj!>Z5Bv`Ud|kKz diff --git a/PLASMA-DEM2.PO b/PLASMA-DEM2.PO index ea761b476dafcf6bfaa8afb585b789bc8c99d6c2..a0aa4a2ad9cc94275a9fb7f12d21c307d9e6d240 100644 GIT binary patch delta 7801 zcma*r34D~r`M~j+_uVs_W0Q~s;*u=Mx+Ecl`!ob131+DY5f)HHtV~m|rZe`4`nmNFkKQ_KnK>PbckZPQ3o_ zuf5CslFih3CGN;n+AhDT(+GmT$iyz!)mTM>uORo1;rYX^oaa&!rx|?1-)F6r%2-(| zowsB)y>*V;xz8AYYyRY*FDIefE9UDflSP|;xy2<#1B>(Xh7UGQaw$!i#G5x97FnUv4f%05n+l@cQ+xSUI>UCxYlUYB#X%Q=l( z$N&2ios$xs6$SSR-vmLlq#~nTN-#G!Tc!j9xn8*7o!B_7(@Nt)cc7iq6*V76LXQ@D%$(N$pu#iBCOZ}W#ua*C1uu$18Yg9ga8 z!8^;m!QO*s$X&r*gLCZ#(L(WKSMcKCHi14eMlX^keT1~=i)1VP_cB8Ng#1&f>R(Bh z{sYX4Ne@#@TAU*EmP(ZFQB=K?;?jpwU!=6uMo?c$-6-m6sMGKO`AW()w6CXqBl)vR zEA0j1KXTk@+P+du0sUJVRMn(g)RvlE6?(X;>IrHqy*qWi(1$!#t z?G9CFcj9jNF%gq76*G8``{)-?P1*wDUlTv9D%w)omXog_eu8)v@mlp3ReOqL6Sm@M zJV(P}I(-=IGvu`hA)F@T&UABH#Nt{<;Xs*UmVTwsA|jc5narv6pNgtTza>*Ri=TH^ zg;9EfzZ$w&j@#f9*t{rHrq<>c-J%2@V_=_@W^FSw;`a>fpU6+hmf9!e#(-NG zlo+L@-hr|!dN4MF6h$9G=~G(i_fl7lIphnu5f3ZL`clQMEmxRjScx^bJm79^3-LDW zz+Od+)%a*@$G8J$xSL;7p5@Ih5;qWAR7LN|b>}c}xs1U8HBK8wc?Tr}tyfWhAEidQ zhH=`6E!c);NlzCm|lVgHKWtw~@c%-aLAfJgk2G2wbeWXzIsd!Pi^lwCr=HRmw5971k zg^}!uUX0>k%0i}dfazSvbUsFYochlgamfW6qikmclPOb}p0{%GY2=+4;atU~6_S?| zGnGrO&gI3-+2ss*h#_C8xUUSewv`cm8qZ-T9e4AluP~yFwEhP1n~JKvMccc0pSttZ z{ip%m&b=)p2t-Y~sR2FH(C7@v|PvJy&WOq@B+J#oriV6%#^%b_!Th2pYEO*aCtCAE$T2TZL}M3sptXR6=>>o;XbC3$Sd!r`-u3^(Pb&w@Wr zu93ZhGp5`lHwQnNlGeLQ`fbaqY#Dv>3M?X{&n%nYW?Mf}P7e25c7#`CxCa&Vla=8; zO@2#vb(--~Rcb6do+RNftx!C{{#D7+8602LCaqU&+OP*^`n&rp}^v-uq z2skH2ijnOrBgp+_#q)zXQ#;A+!5LF0$V0&sQ{90dV}#<26-qD6$DvrE*C}RwFY{$T zz>=RouG8+{Q=w&R$EoiSOs_Y76Zp;@7Bqlky$arRAIW zp2l4!q2FUN>C2a0{%($$L3|&o$>)&Ir(8(+AmviCOW$KQX?uxZ<~`mtM`&+x?7KKh-A5dE zlJb;=1HUjQvkyoLuAW|5TR&Y@95Hrd`WDBu5T6GfGj|8hB=owng%e_DT-m>q({bI@ zFtxnfD5L6JTz4x;_ok$WgQQ1O(k_amU1L%g-&qY;%R4u00Q!Q`b)RJW-$!bgz<4YYR zrHx5VT$?D8HcfpZ)EH}deqnKb(WrIt*^U^s{I=}ICQCw26j@GFQlvJsmJc76R+K)f zE`ET6q;J}Q^x>n*A8iYW+ddsb97p6 zda;p=PU7g&w9)BzkQ5|2X(>qW-;pFg$>@`xKDv~oFo`||X@%(|wZp4js`Lb>&$*S? z_vSPY?wHfEF=}T|7L$^lnX-LK&{mUni%U#Mb}H-H$SK}r=MJSJBgm=e)OiWEB2g*)vceO5 zbY7wL*@g*8&VpsZ)AQQ)ENd<@;wRbon2S4=k~pE9Nf1g6k@?NQs64f@7ZGm{r6ZiMLn+$=Wj{+p!ZbQuzlOF*dh0o^qe`6w%sj4a-eJ;ELymoW!Jvz0hg(1*?s62 z&zTS1u;%79uDQD&c2zZX`PuFK;fCk9pzmkn$@`io${OJ<$RC+s(EjR|nduRsik>$< zc&`09q5Hcnu3z_S#H~d``;W-K+ErXyE$rf8)D4I6hs8?yajm?t%go2Ku3?HCw<1-x zlb#jDQj_nj_)xyy@_81nS8x&+S+G)AFNUC$HRovPc_|0&xg@31-0?-M@vXcj&L-a2 z<4BalY%(P@Iz@I&P6=mEku!f%V%#pvv@%<%O=RRK>&J=7W}_?&?MRVv(i3_!MRsvM z-%x4JwidGQ$TIdF>q6nF@{gHsIoMa&mduP)W=2;*&Nw@R1GXBUF@9TC$u6*d^1!YVFzU9x^d$eAu%gx>MU z>76{WqB5GDOh;dYFisN5$u^B`@a2bHInfI@oM>%m`mJ(KsHibeS2-@W}R|j11`rjq}JDDcKUjzH_P0#$D`M;jI zS!inpS8yR+4r#pVk2C%sx6xyC^5687b4^!H`ODkL7+=1P46iHnahsdpMuzw1w=qn; z`6-ww%|dTwHr+<1ON&rp+ne7;ri;@!yy-T+*Y>~M#*n;n+F#zrHd%7^)%)i2aNi#I zANTE4mVCI+%{~iW;Y$@ZAtwDG#jzh1(eLl7sQcL@QZAUqqyMysOBbzT%B4*`L(jC6 zcScNP5nYWi7SdIrX6PW7GSXqJ4}DPpV@)W>MBI;gHkQ!E1dn4KHe)AtV;|lD3xf7J zj732507r2OXYms*!WO}h zqd8KMiJr(qDaOK&>Cmtk+fauWupjT^Bb>os@pm{P*+@ik|Ctr zMhzC@F|5HesKY@V#xZ<`^SFS-C?1cHj;_eXAe3S(CSYz9_y0kHM-aj$)ZsP#;UcU~h8#&qLpJ(h5Jq4ereGUd7yAM4WIrF=iuq#ceG7VS6>=7A$e-aGXAf&Ig6tK;7|wC~uv`+T;r1S9(J;NkuMcjVxaJ8Y{`gHq}2 z7!qdeZu&(>i7|T|U1fr~3n_QlHM?;aQX($tO8-|K`4aFkRu&GN!rFzY-Cn;phme0x|p}K6@&+K`- z!B-HHz2pGJb1+oUOQy&Xp{c#(85s!aIWjg(RF^oF;_4XRp38aom3*asAjC6{Bb5^CRD#)n+J&~ts{Eq8g?e^r+|MVaC&5pe^>{Q5!S$@;-! zSN#z2cKtAMy1qpGQ11}m*AEwes}B?B>T|{UdYkyJK2Q8qA4lvK7wRKK`K6&^YD2b| z(U2*s8gdxHEK%K1Di(z@a^-S4IP_AkbhWTG%V^fT@lnq^(7C(BY5bm5d^WncOX&Mt zxg^5YOeiBTn1{SBdlug=9WpSIA8JPNW6Zs3BtL?;)7u7U<9}eOJ99P}CG%0$x zDNRdY|Jw@b=*&Ji-{jH1HYMxb%*pytbDDN1&un8b5%*&$)?gRUcL#X(J3;&pm@IrL zIav9e7H{M8Trw+RDtb_tZ*l2^P-uzMipk3?F0F#L@wf-msrwam#xvXlFrML-QTG^i zD~X@NX7Jdi@1$-I@hkWP4&Z$pweY3%5y45E#@F~BKj9*b=Q*>n)FJ}>UaiHl95?6r z%uVb?CfcDRx}hg}aZH}Il{TJu67dv{=b2BNjT&-|wg-qG3GlKEI+c%8`6Tf=Y=p7) zZ=-%Y^*f38U?2X7!}t&%(f*0m-MBaSg8Vz2r%tsc>o%Laaet7&a_)w)N63Ql{Fseg z1dPqXP!#bnSYm6{xM>(oJ|By)48Oq>SdUG3nqzm^Tv{FF3p`Z5WOM1S@_>4PHZRM2 zCc2;pve6s;Fc3pfj8c@_x&IYBVcu;w=@aZ$?H($PO+__o5TNbX_85J!-KFWok8xbc z9^SaoSVO+vo}z8!xNUfr{CD7zkMVxSrsU7|F+%^` zu4rG9e1&r~p0`Kof48S;|0KTzg^h(dOz4gR6hnci)ls&`D aS|7^37DL@q@Tkl^CNr=rLTF1oCuqOiy=KEmgLuBaLpU>gw+5 zxafj)(FNNRQY)2-vQ|1; zr8ae)?sUAR55R3d+3!h@>2<_(XJvwDKQOasbit6Kob1A3`j^~D7DjRWuHF1K=`p>F zjCZ$n)3zWdGrOs&xY3!mf4r-00zWQN%6+vm!y!9oJ|H}97jg3S#xRb2;r`}BpNyL>yw(oFSu`cQDkyiPC=c~oy+KnQVw5+C1AlMmVEMFvY>CU? zZ`dqZ>)$sl(>6R@C{s}Dzdo$JFH=Tnh0>^vl4fn0Y^}X2L$uGx|1J&MmoirS0cORh z*%hN2tq3h%3Dept2Ccgit9hs|RN~Z8)Q_QVJarFKw-}F*Z=$SW`?GA{M*gDGTKxm@ z+wAuR+rCnaKJ5w{Oa`N7HN>fQgU~_^2CapmwbqBa{>UO9WQf)B3}Mh@T{Wns~FJl|kJ~vI9G@8++OC zA&t)X(}y3iha2@1)5~END{Jj}Lu8U!dX+r02xZcBh>>FR-$hlZ*W5ukihl2?3Zl%& z_0Ju#Vv9$Slh+jtkcqX~1+5g{ddBogX;ODE30`GPKOsLS7>G*?))xH)HYA_cLW8ZM~_GBRYBAr3Zr5wRT zUc^NHJrns1`B~~OGT;iws}FJz1L&koVq&@&hZOSe3~-hbtBxQaN6aK1eQOr4WVULI z_y$INlj6KN%IfnB=q~KRej2_^r>`@h477HP__$(F|HQWU@E7W?Qum|c?>~G{ZQF65 zN_*I?nYFyuK7N=CSMHiw=lxUeT@sy@8!u90M$fu$&Sd9((-{<<5tP-{Wl=ddKsr z8_$X5(*B)EpMKjTtm5%nd&O~MVv?vbGU<$ET&`YYT3CEWu2p|tcr3#0q}=v5|353M zWx9XnwEN|A{=ZI3o-jjtt!t{R?u=~iyY7s+RPd(HcT%iPYPxr1eSa37=B z+}kii|EMa~pEen}3Bp@krex#>3D+FQ++t6dp0Dv1ubzRq#mQl=M2EMyDBNFO)jl~r zGC6M`PX@gY9JIb6W!xP&YC9zWnG)IpepYD6#`XoeWHLW0RB)I+* zn0_}`bwboemHaok6xGWRWEk74RImCzs<(xtcT;kYo#dXTq*EA4r-tNkbaz9rVQlxN zEj=tGJ(`l9c9Nb=i93wMT`GL^eK@*{A=EIoOVg&V7Lu+_NjE!5x2B|H7)i&5WyJiL zqG)3f6C|PL7Qe6$uVyGmAXM zmEhQ?l(|zga!sOZiDBCn|DftPTbihFI@}%Ey|Vg@t&{!~b*Is7?!(_(Lxopyw|Rm+|u|rM|cWFx$w#|_Ih+-o@G~kMZ6>TG5^_x9s5jdF5J-# zJBxA3=qRCFi4n@fl$Y>5;-iIf7~4@xUPc+rKJ)!qzD{yt?JVC>>6^uzos0QUu@uXg zyQ@qI>RRHBcp96r6+76r(-fiZCf1r2CjNA62%yYa!kc+%*A}O(5lT5s*iXHmSYXpVLdir z6Z_P#&$GlkiFccQ3F=EE2XGLtQ+eE+pq;`QT)<^>f@-x0wX;QN-7IFc4{;IkI7@;$ zfp`k>4B`ifA0~d(!io;RLk)Id4}Oo=*zZgBYh`5xZZ&JIeby+orQzx z#dvm}Vs)z1DIc^twQ3sDPFqL389S{;Z4c#9oU|I%^X&Hp`+q~*?{F1A;wSu!V4G0G zY(k5&IfcK=l0WWW8f$ENMlb)x%jojE9?;nh59s|XW2>5)Tyr`&mv=nG{hn+3>-lZ3 zoz=pXn=>jWxAU#rn{gEj);@Q?oz`57>3yNaoxN3ywgn>wjm){#RNQz<*u=YGckR~r zhIzhLUf*xhFV_S0)1-HOqU=PnzCfz-o%N^X(YS*=%3jBL)bR*Q;wh4c5}raI2M$O% zbcZ6F+pk6H_vxpjtm5N?_Lef=%KK-aG*Ncd%e9Fz%IOuACU?5Bd4#AmmYaf~+-ICC zrZ$h-FUrzPHd{MHx52FB9K|M-GCj$n!LX5YUY^6TyCyR5w&(KI$G|6^F}fzS?j{_0S}Z}&W{ zV`I;ufgNpS=cuKNXOxGfFPhpiYJUuo+u1O4IL|Et=^cOTY}}eT3Cx_0^5&QQ;zTse z$ml?gTSn=pqjO+xs*KZ*=!sOB@+-siUh01*WqZ1I2~U!+3Q_V;DNg*Lh(7-^h+Wr= zqUCjySn+SOxc;+6+<#-6JFuaX92YW`$5stOcy#Rv$j-9XH;G%de$Q923;`U%7r4SL z+-y;_6icj{&aHL`^05;yaeIE%5}|%h{2i`>AEMgP42kG~t{4dYZd?fNz-lEHVzHHn z)?)-uVk>syWxRr8IE7De3IBkp@ph|5QpO_{Juw=S;Kgh##4@bMGuVzpcnimI8h^u8 z8_U{%5hy|2$I%?|aHAvoAP0FE2QMDNQY?obTd@l#aRz5`8CUT$g6xb4TA~x~K|c(^ zC?6jcsKkRmK`AOQ6F#iK9cmp5eGhD&u8jt8(Z zjPw5l!3J!@OE`+R@jgDoWn95^)FH^hh#(#v&=W&Zgkns>Y%IW2cpkg(3Xb9=KE>zw z(#JMj8g82&I^W>6ir{R>F^Gu?w%`1m49NT*h|@kKm8HaH1o6BNHRw z8^g!Fn2l;I!YXXUF6_l2yp2=%2%qCyT*JR%j%0=-9$k@!3=G3qOu~K~=auoOe#3_E0$qB@8SSS=pFHvQ@zbaO{QlA7#|o`A(Qm!~#>elz;jxCq=+Q?f zJ~;N?=@X~NSob9PrPA7-AEYlV28M@;NeAscWsIrYB~fW`ryDn);w?hVF_tUk29^qG zzJljOxiW90quelWltZsw(@?FyVg!o%%C$+w^#!83zC=7+KSC_5FA~1`ZQbk34Yw^f z;sTa5xm)H14y4I}=B&JT>OI2)^=WdjAuI2AU`RiiC`Sb<`^igkQDA1ej0_UYOFTitX|lV2VP5;w!RaTig6BWc5bMk>|>lauAyZ^>w$_>@1(y{G1{>v z%|dHWH$7h67`F>3{bjj)^Wc>JGDdcIL5O+94$oFm!Bou7wdv&=y++fch=GkYtMwXR z;Drp?YGMXeV%}JXC{aA4Mbr@Cs~ajd)D06a)eRT#)a8qdb)&^q?la%k6^ifcg2a`& zO!1F8tN5laTl`QLMeGzm)rE+X8zV$jeVUkA-$6{PPZta7Q^kYz#p02GD^srRnHN+khGzG9+tn;vKw?vj(T87!@tVn5;Hu zaheD>day_xXl$c>WlYfSF(qgPreyVA-lQg?5)VUvYt!G>UgoXqPrQ+xC;k~0GdHeK zo{o`bm)e3SrT&)XLK=00&9T~WTg(8m_yw|)GZ>`pSY`_Q5T@@ zY2s~o9($-eK%M?HegntwCwzc2W^P>P2rl3fzQI-egnF2G9P4jdb~q4;XdcfcOyJ!U=qYPjHUyf3r9n)(@A-|A8NYF6c4d{!Nx7l{mmZbif_(S5e^ml>yqU~OxU9u_a zmn7fdDjR>ag=zn`C9C!1`hvy`TaeJgf@0NX#Bs#Vpm;5rTwmPuAnzSyRQpn<2bt7t Y%0c8qDTg1tF<2^+zdMKT7%VUU2RhIFGXMYp diff --git a/PLASMA-SOS2.PO b/PLASMA-SOS2.PO index 5508da09f0927d49cb439098800bcf21db2d36e8..db90822c518fd1dbf1d0c462b5d89e541e4cd834 100644 GIT binary patch delta 148 zcmZp8z|ru4V?z*&s#dUnu%5STke{m$0|@YlG3YQbgfTd&u!<@(JZ1nhCYQ6!V`P{t z#;U-QuOiO1*^2c9+hhecE*AFx|Nn0m;Q1iCXbF?HsJMirl(dYjoV<&xo4bdnm$#3v wpMOALP;f|SSa?KaRCG*iTzo=eQgX^>LAI-mi&h9Na`0HR%c<$qvQvy{0Ns5mga7~l delta 8216 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 diff --git a/PLASMA-SYS2.PO b/PLASMA-SYS2.PO index 6c699f789590e3c9273513cb954a448e61fe0af6..5f51cf2e9d66ec678057d080ae6f33ad7aa2b252 100644 GIT binary patch delta 15757 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 diff --git a/src/toolsrc/codegen.c b/src/toolsrc/codegen.c index e4419d2..7c24b4e 100755 --- a/src/toolsrc/codegen.c +++ b/src/toolsrc/codegen.c @@ -1268,6 +1268,14 @@ int crunch_seq(t_opseq **seq, int pass) freeops = 1; } break; + case BRGT_CODE: + if (opprev && (opprev->code == CONST_CODE) && (op->val <= opprev->val)) + freeops = 1; + break; + case BRLT_CODE: + if (opprev && (opprev->code == CONST_CODE) && (op->val >= opprev->val)) + freeops = 1; + break; case BROR_CODE: if (!op->val) freeops = -2; // Remove zero constant @@ -1355,7 +1363,7 @@ int crunch_seq(t_opseq **seq, int pass) case BINARY_CODE(LE_TOKEN): op->val = op->val <= opnext->val ? 1 : 0; freeops = 2; - break; + break; } // End of collapse constant operation if ((pass > 0) && (freeops == 0) && (op->val != 0)) @@ -1976,6 +1984,12 @@ int emit_pending_seq() case BRTRUE_CODE: emit_brtru(op->tag); break; + case BRGT_CODE: + emit_brgt(op->tag); + break; + case BRLT_CODE: + emit_brlt(op->tag); + break; case CODETAG_CODE: printf("_B%03d%c\n", op->tag, LBL); break; diff --git a/src/toolsrc/codegen.h b/src/toolsrc/codegen.h index 6288330..ffde6de 100755 --- a/src/toolsrc/codegen.h +++ b/src/toolsrc/codegen.h @@ -66,10 +66,12 @@ typedef struct _opseq { #define BRTRUE_CODE 0x0322 #define BREQ_CODE 0x0323 #define BRNE_CODE 0x0324 -#define BRAND_CODE 0x325 -#define BROR_CODE 0x326 -#define CODETAG_CODE 0x0327 -#define NOP_CODE 0x0328 +#define BRAND_CODE 0x0325 +#define BROR_CODE 0x0326 +#define BRLT_CODE 0x0327 +#define BRGT_CODE 0x0328 +#define CODETAG_CODE 0x0329 +#define NOP_CODE 0x032A #define ADDLB_CODE 0x0330 #define ADDLW_CODE 0x0331 #define ADDAB_CODE 0x0332 @@ -95,6 +97,8 @@ typedef struct _opseq { #define gen_drop(seq) gen_seq(seq,DROP_CODE,0,0,0,0) #define gen_brand(seq,tag) gen_seq(seq,BRAND_CODE,0,tag,0,0) #define gen_bror(seq,tag) gen_seq(seq,BROR_CODE,0,tag,0,0) +#define gen_brgt(seq,tag) gen_seq(seq,BRGT_CODE,0,tag,0,0) +#define gen_brlt(seq,tag) gen_seq(seq,BRLT_CODE,0,tag,0,0) #define gen_brfls(seq,tag) gen_seq(seq,BRFALSE_CODE,0,tag,0,0) #define gen_brtru(seq,tag) gen_seq(seq,BRTRUE_CODE,0,tag,0,0) #define gen_brnch(seq,tag) gen_seq(seq,BRNCH_CODE,0,tag,0,0) diff --git a/src/toolsrc/codeopt.pla b/src/toolsrc/codeopt.pla index e5ab340..92dd64b 100644 --- a/src/toolsrc/codeopt.pla +++ b/src/toolsrc/codeopt.pla @@ -113,6 +113,16 @@ def crunch_seq(seq, pass) freeops = 1 fin break + is BRGT_CODE + if opprev and (opprev->opcode == CONST_CODE) and (op=>opval <= opprev=>opval) + freeops = 1 + fin + break + is BRLT_CODE + if opprev and (opprev->opcode == CONST_CODE) and (op=>opval >= opprev=>opval) + freeops = 1 + fin + break is BROR_CODE if not op=>opval freeops = -2 // Remove zero constant diff --git a/src/toolsrc/codeseq.plh b/src/toolsrc/codeseq.plh index 605786f..21dd605 100644 --- a/src/toolsrc/codeseq.plh +++ b/src/toolsrc/codeseq.plh @@ -87,6 +87,8 @@ const BRTRUE_CODE = $4E const BRNCH_CODE = $50 const BRAND_CODE = $AC const BROR_CODE = $AE +const BRGT_CODE = $A0 +const BRLT_CODE = $A2 // // Code tag address group // diff --git a/src/toolsrc/parse.c b/src/toolsrc/parse.c index 82bc69c..77bee1e 100755 --- a/src/toolsrc/parse.c +++ b/src/toolsrc/parse.c @@ -994,9 +994,8 @@ int parse_stmnt(void) { seq = NULL; } - emit_seq(toseq); - emit_seq(fromseq); - step > 0 ? emit_brgt(break_tag) : emit_brlt(break_tag); + toseq = cat_seq(toseq, fromseq); + emit_seq(step > 0 ? gen_brgt(toseq, break_tag) : gen_brlt(toseq, break_tag)); emit_codetag(tag_for); if (type & LOCAL_TYPE) type & BYTE_TYPE ? emit_dlb(addr) : emit_dlw(addr); diff --git a/src/toolsrc/parse.pla b/src/toolsrc/parse.pla index 831beec..249850f 100644 --- a/src/toolsrc/parse.pla +++ b/src/toolsrc/parse.pla @@ -755,9 +755,7 @@ def parse_stmnt else seq = NULL fin - emit_seq(toseq) - emit_seq(fromseq) - if stepdir > 0; emit_brgt(break_tag); else; emit_brlt(break_tag); fin + emit_seq(gen_oprel(cat_seq(toseq, fromseq), stepdir > 0 ?? BRGT_CODE :: BRLT_CODE, break_tag)) emit_tag(tag_for) if type & LOCAL_TYPE if type & BYTE_TYPE; emit_dlb(addr); else; emit_dlw(addr); fin