From feeedcc55cad1d070f54d56f1f2566ed87d477e9 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Tue, 16 Jun 2020 16:37:21 -0400 Subject: [PATCH] z80: small optimization in execute I had more ambitious goals, but I backed out of it: not worth it. This small optimization is an easy picking though. --- blk/301 | 12 +++++------- emul/forth.bin | Bin 6188 -> 6187 bytes 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/blk/301 b/blk/301 index f2e1935..65f6bf2 100644 --- a/blk/301 +++ b/blk/301 @@ -1,14 +1,12 @@ -L3 BSET PC ORG @ 0x34 + ! ( execute ) - EXDEHL, ( HL now points to wordref ) +L3 BSET PC ORG @ 0x34 + ! ( execute. DE -> wordref ) ( We don't apply BIN( reliably on stable ABI stuff, we might need to adjust addr. Ugly, but well... ) BIN( @ [IF] - A XORr, H ORr, IFZ, H BIN( @ 256 / LDrn, THEN, + A XORr, D ORr, IFZ, D BIN( @ 256 / LDrn, THEN, [THEN] - E (HL) LDrr, - D BIN( @ 256 / LDrn, - EXDEHL, - ( HL points to code pointer ) + LDA(DE), + L A LDrr, + H BIN( @ 256 / LDrn, DE INCss, ( DE points to PFA ) JP(HL), diff --git a/emul/forth.bin b/emul/forth.bin index 39751d961c90663dccd23625f32e5e9bb978dfd5..cc07a64fec42b381a1a0e3b7c20b22566e492402 100644 GIT binary patch literal 6187 zcma)AdvKFicE8_4lKt71B^$qR0-tPyWrV?anKq_=N|uQhS<*_vK&W9cU_v1lwMobu zyJff8Y==K~viW2GFthD;3PZLXrb|;#m&_#I%x;#4%S=5Jb`Xi%F-uCENtjL=)AhQ) z-@OvB-I-4DAl-BBIp?1DJy+9(+VomYh%c+eY<2PUPqgW8YSTxwyPt^Z*R^ROJ`w+g z|3Y9n{bSJa`)}2EcxNOngjscUg_vKOn_emWL!(V@AeQ!sr2%cJhNv#!yuwj6_wq&m zub1kV>Vd>R|Itk5SW~5NR%JH}+sJO#vagElJHNH3v#)B|cb4sc&IZ(9^)EYOQNC0|YBLy* zr#IbS&icf%Z~RW3d1qaLsMGJ<^_kjLLri~7%)k1!e^cBk3hU=*YggVrIb|2s*7no} zR=#8Fp0BRY`77sZYinok?x`P`d+{Iq#zOM$oc*tV-#+(2wjO`aitKUigY1aN4r{dP z1E>Gl;iD&-e9vhMyY)Nj4B!3bw--jAxSO4y^9n4JPkj7P=areYqWqKDyY=-rVrhQv z>NhnWRu9Kl|N9N!S7g2MFV%k+-Wd*UPlxXdSJm~aKhvszo{Xn0cw+AQy8vhB--o%q z+Y=t5fS9NGT|h8w5`i#jMD`}*i83OwPVMMP6mm_G(wXsraI!RynU$zSB(%*#)a5mo zSG2|I`|e7ElD~RI&1R7Ho0U_E5^~8FMrE$>frN7C%_@hI_#*@qhsq9M^GcW!`B6r4<GU*RF27vXVivY& zPNxTZ4rP>#FZ%; z^0}oMV_bI^a*fTAwKBmIAzvxXd3SE%Ft!t+Zl*gGS}PWwrUntJs4`B1jU^C}9rilPuO{H!)Ms=JB%mvqN4Y~zIXWW$brWga^@3~-(N5f3U1A6n*8=3er8jX z4U&a{{|36H0NUnAHWhNM$eK6FY*>~iZ3+;ekLqdCCPYnv0fMc8JXkNcTbt<+QU~OI zGWBGnFYQHszDs0}>F_%*w_kqTbD!K%xm)|YyU263o9yWi)CkjU3vs8$2#R1N7AR4$ zApB%F8CI|$uVI}0RN5c z5tM-GUT>Z=ZBYRB3F8Y#opAb}*>`xP=`F`<{e~74J;8V~y+%0PwWiA%6yanNUBz7| zT>fLDhewWs?vOCW4Q(SfJF11|{$taG^mYUe%lFJ3z;`0S0bG$Hs-PSVBX&vWvws%xXcXQ{va_75pr#}*_ z1pD_vPW1x%YLNH$>@1VWp+}Ih2)do&Rut*&p>1?`K<@y3^Bx`>(EYF{)Qu!F+>6?I z#9_t^U_0aspqsjDU1y9L1SZstyvtME%271uDQ!Ib1N3?q<(m z5qKT8&;-j6SRb+Ur-l^V=(w#hjhJvB>M7yIQOn{p)YN%nS`X-FAbm%wt3~R_%tl*@ zr@Qivk{tu^`aHbG3W{`mM?BeEDx279{d4&7lw}$n`Wx1V`XTYzGIHv~&|^}d8%6;< zm^rQlXy&XnVa!4ZMR=j-tTki)qqV5LVX<&t)910*0j*}t&kLEp8z6y+d`b#u0nA!{ z6zi;Y#!x)-7JW^bk^cU0Z=@$39uS4HOW!h?fHo@U!7Y7yG9HaS4s%t!nJ_cZEdj0AN!yG+)p=AaC%OhmXSF1-#ZRC)`e8bg=sQJ3-@)Pi zpk}DgnNtY#X4h?Pt7}|*x%?VfxYxWAEVZs0c)k-D8u>4t z=og9tdV6tDB$D9)28k!K$DKAhi)~RPm`MXY$w*Hy3M&fSp8~6k3$Tl+;rBq5MNI|iB!Wa0 zYUJ^K@#NNUnj!o}(V|vS!U~xzR;Pyh6X{*mV67A8-mw?Pcp(;}i;+fA^v1)f&efo> zML-cF<^e0QX85CgY6A7kh4^poM(;G(u@ zwV8*+SIbNhg=>I*sK)5FZoFc6+Gbe_K=?4X67dIlM5n5aC-QJ_dKZh!7F+TdzoKXd zOf?{+iE7k?MwoKeiEe8kW)gjXR1+{rm=}tEWSuk1-4n)priM?+>01Lj&3)SV0w&$i z)P7L(MYpG(r02@9Mf);2^%?&~jSRe}oM`<)@w&uJ7#~X!N~~`!m@mrH82x7sABT>d zb1var|B-_)V3>6PybLhhm%^wlM>TCw`u@^`Pl4NR3QfusmyLQiZ^ARU5<->A1Kr;~z{_5Cl;SA_VvA*sxsLAeai#j=jsMxMSJN*xMI~qyXtrn-CPaP^^(s9mQ zV?FO#)FvH`E>2XuI5vRd&)h%oG>EBER*jrb>%8LI?wAoDv^HjScN!S2uMr*qY&+_sllqBWS{Lg(Ib6f3q|tJ_SS9 z1~8m9R(WwWJ2L4CC0!Z#E%Y&tG&M#lrv}Ss!}EVM%gCoDvtj7ixBd6B{0_5x^uW=P{dfSnV+4jK^@$=+zJeH9X!g3jX(VnbKrsDxIo@aN2oQ_Wa;riNB9u^;j= zHeqBPR~&xhLeUqF22oe8#x3ggkZD8fMg&^fq#h-fhglSjq|$uYOu|tf8N-{HPQFvl zsCSE-MjP5xjeG!f%e`6^i;%7u_qrmZRq_nRnbxoTub62i@{D zbq&%|a2Bc5W0r3$rBC2A;=&58G4`xbs3b3YzT@b+MQxS0+OucHxcE;PN(+(!UiOM5 zpy$8!3iO-qbt-{7p*BIb%#I4)Yk+*~)N8z3ZTh(RRDP2K67OMF6gv|ynr#)gwOSWf zPgk&NIY_Aocq0_JS6+-a4}YXoSCuh9oql&k-vl)s=OKd zW!dXI0+ZL!XmjSd;iFTfe2DbM*PvIUQ_F5n&&Cs_=bgHgz}Ueu1*P dZT>c8`)mw$4R)i=@rdj0b-+nbZutnB{{vK4r9}V$ literal 6188 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