From a483e1e6e809661810403fff515e1590a274c24d Mon Sep 17 00:00:00 2001 From: Charles Mangin Date: Mon, 5 Aug 2019 10:47:00 -0400 Subject: [PATCH] small ROL optimization Thanks to jcmeyrignac --- HASH.dsk | Bin 143360 -> 143360 bytes HASH.s | 25 +++++++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/HASH.dsk b/HASH.dsk index 45b0c596325dbb0f26c882eaca02c01d7fe60df0..7f6328e28582d04c6cfbabfe7fdd0047e47a7c80 100644 GIT binary patch delta 3276 zcmbVOZBSI#8Qv4*LlXlcR0xU}1Qk1pf%|e6MT9h_T{@$Tnez0y;+Ii3;0SXd}B^G8MkyI{-LrV5Fe;)7{rGv;~@U2vhyH5 zQrYVuK33TU5dTt{8+i8qK(X?ZIaWK)_KmaspR6)<}CX%z0$f-71zxA4)KLquaIv$#TR^2E0~NdC0d`Z1b7}c4@ut`l53qM>fU`jSkjiZrJC+6(h>CcCo$&yb z3js-YjvIfgWwmqh6Zq7^LH8fgAH)MZy%=EOsds+s*q1Igc(;8nPv z*tQ1|4+6Hw1C%cT_~yckkQ%$=&hO3w;X8=$21Mcjq7ii>JsMUgRz^eWL`pQMq96UG zWU3JFlDttx-df$c8T0H!5*h`zak5THJb)Sx0Ms&@VEyRvsoR)d*me-l@~XC9I5CUo z#WK1Q%kJxAnLam`_1DE5U@b^D$N`ZJ=w6S3ehUfATZmf&1}t8^xkIhwZUjR|66-*N<=hJ-6Wd$(?@EY{lEr5oB%cm z;v_I92vo@h0#)k=fg+v&ftsEKffAnr(Fv><(8^gKpsTZEfCkTwgK$Wj?~pcsRNB0T zC7JIz$@6*SndM0^A}DLbgQXp|VGl7v*oHj3vVJe$fYpGby*Rl6d^Q-h%SA2^qHewx z7(I+VrKAabtuT57^yxD*FGdSz^ee_R@|&H(*QhbQXI`KAW#LRs6vOv`?>LN};zY~j zpsjVfz!t%!Il&gjzk^^4;qnH+7L+B>C0RtZQHcn&Qi%w(P>BfG=v~CUI!Z!#Y!a+g zW00ZPBt}Gk1#8@wjgWp8tFxC-Y7EyTm1smI67Ur8y!H)zYkeB8tII{QZzgwwuNOx9 zw}TbCNDUVdb=nmv^nX@B&GZ zAF3S%^j{~yw8>GUe`k+ zJlegQnA{n?Y-L3c}h5t(eJ~pWE@xf%b@e0Z2 Z(}QVAH_bQ8Z&v#ANFq7y`n8K({u;2Eo$mku delta 3083 zcmbW3ZA@HM8pr1XmZ`P{f!3ka?uCGs`hx8|p0YX&)3uEh#&w2)R-=ivcFYXS1xjfP zEoFw51NG%3>M;VXO)&Ouq|TYNnO)n3XO-Iz^whG}VQTT&A@(JTd@GcxMZ z(wlg{+fCt|}u6R{!Q;|}qJ=MOxtsoY*)cP%hn?^fv{~v5W=<+aX(>=L;zt8L|6&) z5V4-HdLq^l<|cey<7?6H8gmxkt548LJweavaeBsw0q35yJpZ#0-g7Axy^|>&y=PNO z-t|j$xoumKn~)rbSQo?<_)r|81<6rKD%&qnTYFXeGh4zF`Z zSSehb5qjruXHTCl0c@#*OGC+jr81afn*rb~R=2AY>qqZX-_;LI8K~%nzo=`Tza(@Irm&cB7~<0=5_dwJ9Jtx5=fd4;po` z839#BfPFqtKL2D@&nMCV@AWRE*2abUq}BS<^?+**^?9qofx8eiBEB^MroOd~=S^L( zjxU`$Zyh&JowK5ye6)VD3=fYyLgk|_JVKRZd=a_Le{l}zV)kN5d)&k519AU{yreh!y~5BNpE5FS=Pch}H(ofz6lvMHP6Cv<_gKh(**9 z?EtVkB5H}YA6P9BTZq;LYzx6{uXO^e!9L&ki-LI9Xx+e^*vCV(!yv7&o@j?ax}lqB zy?}-&Tto{2b0M^iXagX9bSu&NL0V}e(I`kaZ6I17prPus<2UJvT_&0sG3jx9$MqyT zfM&<`quH@8G&|M_0t4@WIb-fU@ah;fwe;98R$1fywK0>&4rvc-F1L)E$2x6b~>b=sd_eihq02+_%km2uye#J79 zsV7mcaXwqeeC@YJ{wm}3oWFGC`yZxFS>`3V1(sE6>6*LmgG!rYQ;pNr@Ys{v zcczP+BQL)6D*vQ)CBNKSIylUf5`Jr&YEF~<@wSmSi!&A8TbdtT(mtgO{_~=e7hTeU zUmsjlmhp;xi=xZ+UP}Fr#nrx>qRTq5mA_lL%;W7@(Tn?Yu(e0|(L9@aG93JW-7|x& uFDe1YT$v>!_+1(B(>+CetmkI_VNW4X_T*({RA$)TELN05p}&NbQ$GO^AyS_J diff --git a/HASH.s b/HASH.s index f479077..7f7f8de 100644 --- a/HASH.s +++ b/HASH.s @@ -64,7 +64,8 @@ * unrolled COPYCHUNK1 714,904 * replaced prbyte with my own: 708,036 * special temp/s0 macros: 662,220 -* LDAW, LDWADDX, LDS, inline JSRs 627,718 +* LDAW, LDWADDX, LDS, inline JSRs 627,428 + ************************************************** * Variables @@ -285,9 +286,10 @@ EXTEND PLA ; pull A from stack (15) EXTEND2 PHA ; push new A to stack = 16 SEC ; set carry for subtract SBC #$0F ; -15 - CLC - ROL + + ASL ROL + TAX ; X now = X*4 LDAW ; takes X as arg. load W[a-15] into INPUT32 @@ -328,8 +330,7 @@ RIGHTSHIFT3 LUP 3 SEC ; set carry for subtract SBC #$02 ; -02 - CLC - ROL + ASL ROL TAX ; X = X*4 again @@ -890,9 +891,7 @@ LDAW MAC ; X indicates which W0x word to read from LDWSTA32 MAC ; store INPUT32 in W0x word - CLC - - ROL + ASL ROL TAX ;x=A*4 @@ -1212,9 +1211,9 @@ ADC32 MAC ; Adds INPUT32 and XREGISTER32 with carry, if any, clobbers A,Y LDKADC32 MAC ; puts 4 bytes from K0n into 32 bit "accumulator" INPUT32, clobbers A,Y - CLC - ROL + ASL ROL + TAX ;x=x*4 LDA K00 + 3,X ; load from table pointer @@ -1262,9 +1261,8 @@ LDVHADC32 MAC ; puts 4 bytes from K0n into 32 bit "accumulator" INPUT32, LDWADC MAC ; puts 4 bytes from W0n into 32 bit "accumulator" INPUT32, clobbers A,Y - CLC TXA - ROL + ASL ROL TAX ; x=x*4 @@ -1290,9 +1288,8 @@ LDWADC MAC ; puts 4 bytes from W0n into 32 bit "accumulator" INPUT32, clo LDWADDX MAC ; puts 4 bytes from W0n into 32 bit "accumulator" INPUT32, clobbers A,Y - CLC TXA - ROL + ASL ROL TAX ; x=x*4