[comp.os.minix] Performance increase for the ST ... Patch

V61%DHDURZ1.BITNET@cunyvm.cuny.edu (Ronald Lamprecht) (08/10/89)

Ok, nobody is perfect ! This is a set of patches (bug fixes and improvements)
for my recent posting [1].

The changes:

- copy68k.s:  clr.l <ea> changed to move.l #0,<ea> (= moveq.l). Those of you
     who translate the assembelr sources to MIT syntax (GCC) note that
     all move.l,sub.l,... with small constants should be translated to
     moveq,subq,addq,...

- stmpx.s: If you push an additional argument on stack you should pop it
     afterwards, even if the stack is no longer used,...

- _mli.s: I must have been very tiered when I programmed it -- but from the
     fact that only the 16bit x 16bit multiplication has been bug free and
     I did use this lib over a week I conclude that 32bit x 16(32)bit
     multiplications are very very seldom.
     The new version includes Klamer's bug fixes with a few reimprovements
     from me and a few comment fixes. Furthermore I have extracted the
     debugging stuff from the file and have put it into a cdiff. I think
     it's too dangerous to incorporate a DEBUG feature that requires
     different arguments,... in a standard lib file.
     I added a simple testprogram with a makefile. So you can check the
     new mli with arbitrary values by changing test_mli.c . Further comments
     are included in the makefile


I have been told that the PM286 kernel of Bruce contains a similar solution
to avoid unnecessary multiplications during processing the system calls.
So these improvments will only be of interest for 68000 machines and not
for PCs.

MANIFEST:
    kernel/copy68k.s_cdif       -- cdiff to [1]
    kernel/stmpx.s_cdiff        -- cdiff to the original ST 1.1 version
    lib/_mli.s                  -- new substitution for [1]
    test/mli/_mli_d.s_cdiff     -- see makefile
    test/mli/makefile
    test/mli/test_mli.c

[1] huge preformance increase for ST and PC  by Ronald Lamprecht from 19 Jul 89

Thanks for bug fixes and comments to Klamer, Jwahar and Bruce.

As usual: the cdiffs and additional files are shared, compressed and uuencoded
(Sorry, but I'm still on EBCDIC-Bitnet):

Bitnet:  V61@DHDURZ1                               Ronald Lamprecht
UUCP:    ...!unido!DHDURZ1.bitnet!V61              Theoretische Physik
ARPAnet: V61%DHDURZ1.BITNET@CUNYVM.CUNY.EDU       (Heidelberg, West Germany)
-------------------------------cut here------------------------------------
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 fcopy2sh.Z
M'YV-9<:@>0,"#X@6(*24"4.F31D9"N:4(0/BQ LO6%[,><'Q! @?"1<V? B"z
M!X^*+TXHP/)D#0L0;MZ(>4,F#X@T<T# *2/'3$ Z($* H((&Y\V<84!(!/K&y
MC,XP= 26R8E"3)TS(,RDP3,51!@W%-.T@2/GC9TR#MW0F9-BI9DW<D"TL2DGx
M8!FU.M_,H9/&#=8M,;JX6+F2:!D0 K^>F:J#,!:$8][ R6,#QQH7<W2 0,Q&w
MC@LV)1>"3.QW(@@Z!-N8+?,9Q @8+'B(!H&BA]S5<3ZG<#%TH$0034'D>5-Gv
MY>;C=P:>EO-U#ANHA^F@.1QFCL0V8LIT5DI<SIBNJ$$T24)%:1ZU80RB.#)Du
M2 J8;^A$1P/5^'&O;$"K/ON9Q9PZ8O3GPH @W)&&=$JU$49^B+WAQEY?K:74t
M0'6P05%VRS7WG'P4H6;?<?N5$8=_ ([($!DC#C@8%BLAM-=8>&"F61).#5>'s
M3G7,@897;GA%!AD'IN'@@E[)<48=:3'5(X1CK"$<<1,29V%><-Q$QX>;A6&&r
M?'+<$88<9,SQ4AEG]9B&4](=QJ231L4$ AL.+A97CA.QH*)C"'W1!AMIR A"q
M$G+E"!1]9X&0W5T@G"6'37SQ9%IRB )*UAMG,->&0V$!U0)"5@%E1EEMG#8=p
MEEF%,090TD$%G!ML,#H="#'8(,:!!<$J*ZUM5,@7''R. 960/=*7TZ$]6H75o
MIV50!Q:I@ ))$9VB&L6G&, IZE6!R3H):&1NC,%&'63,I^H,,LP*E$&QHD!Nn
M"N:2FBL;N_;ZJX-(U94H3S8I:I-$%K[1QHKW]7:8&V7<<:\<<P![4[??AIO3m
M$L\Y),<)PUZ5U59=&8A@4CX97)=8DYZ5Y!RD?NJO7,I2Q''!#5YZEZ<8S\&;l
M$77(D:8<JMD+**&'E8$''<R=:EJ:I(9K[!E]8;57'68X97*H:5[,1LH@\(PCk
M4+3V%5Y28P#9-&^ 2M?7&J0>2/%I;Q!$AF(\$9=3>'U%)@<<<$%W+1%%"%'%j
M$5DM1$?-X@)55QQUI%$7R5@$[+5/=>'UY9$CVTE@7]=""-:7%$TK-6O,^ABNi
MRDJ!//5I4]$Q::5AA*KQCDDIN$896DW-VQ0$V8C85XA-UZ2H99!*L,%[IE'@h
M@:S+82YSBR:Z8!U=B6$3:4C[1?I>>O+IPA@@S%SSS2V/3.J7A\7=L&F41^TZg
M[&E,[=A*.X=1*+%H3YDJJJ]"T80,.-@ PNMR$ Q:<$*00QV^TR#T] 4IH6M#f
M^K[$G6_QQ4$KV9H=WI"&9[F!8-^QSI=L\JYXI<%7#WP0",A0LZ3II"P93)CTe
MHC:'/.P%+;?+C\Q60CO>_09D9;'#R(;'( >URE"'"8[6'+67K, %!)6!@1+Ed
M8JJB$ PI8('/E;#PEKA 80@S9!$6FA $)R3!"$68 A4:D[CC\,]_+XC,9"ISc
MF3E\H6MG"MAF-H68Q:$-!(#I I;.J!V-T %&F'FC'>5X$,C8,3Q1@TL:HD<Db
M,<+*!3$X6,(@6,;-3.L%U>M33@C)R3DBY'=* =!>#E2'$!HQ+GG$DGSV\H+@a
M83)X7R!#(.'8M(#142*'.5_L>E?)Z=&AE7QJ91A>MTM5E@Z8:7C!*NF0R>LYz
M)H]5N\IAR ([N"BH6^'K5EVJ<Y@J@L"17Z'(%3?CO(0,:4I,2!TU!>(I4,$Jy
M!R!00H5 @(,<.(8H7UE#3KQIK(MQ!8H4B8S+U/(V@D L=3QYB1*\1)^XA!,$x
M 1P@Y[08A)SDJ X+TDS4:&D&@'HN2.?<7+W4U- ZM8R:UC'-0^O O&[19"(Kw
M00'MY+"HEW3J3R<(U2A[V*.\#8$(21A""X1P((+1(05D7 E1Z6!4S8# "C:(v
M 1"(@ 0B5$$*6HAD)[?*52F<DR+I'$M=V+F2*E1A"%!PZF94%((ZN*&";P@!u
M5:V*U1BXP%Q&#0%4M<I5@<&E#'R9@U1   4TN# -9,-"$*0 A2 T]:E1+<%<t
MKYI5%PB!/$XH A6 ,(0J."$+5FB""SK[61<4P:J$1 $2RE!![63'2"^Y0NE s
M< 2>7#,/;6'1"Q00$.48)$_!PTQ$3&,1C&B$(RGY" B:F1.3H$0E6!C!F<+Er
ME" ,80DK$0H*K+L$F"0K3#QRS71A!\0JSJ>;ABNB0),4E-QF5P7PC:]\YTO?q
M^MKWOOC-+WZSF]V ?4$N;[I)]I32UP(;N)--^!,(G*!@+8:@O_<10G4^6*HBp
M)NP,!*-(!]/ JP_.JT=E*65?>!D"_9KXQ"A.,7WYBX4'M[@',(ZQC&=,XQK;o
M^,8XSC&.^UL$()FR*'N!2QY8+!37W(<(=CMP)X?@KQTJ68Y"&'*+"XF035G9n
MRE2^LI:WS.4N>_G+5(8PK&!5 Q? X 8NJ"?:Z+"@'];E#G(XD'QZ].0Z2R$(m
M3!"S#$ @ QN8&<UJ[J=6_EGG0A-R"5,0\PQ   .[P@ ':8:G F,2%QRN9H</l
M7>_+_-D5)=\YSRU^KXI'3>I2J\ Q7,7,3^[C OG\C%1R5/6I6 TJ6 =,UD Yk
MC@O6QF9;LUHBL]:U&*RSOEX2$M>L=O44?:UKZHYXK<%S3(E-3>UJWY?(6^5-j
MJ$"3!FQWT@C5 <J%,PP")EPA4/#BL+Q,&6*^$$S4UHYWO+&=!#? H91J=9!2i
MV-PD,A;YP&V006L.LID-=]A7RYJRDMM@5] 0'-T>Y(F84QN&&[RG!3Y @<W<h
M" >@Z8;@81@V;^KRM_[IQ./8?D(I[TT'IY(!!@-'2%'.L".XA"LNA]/5Q.5(g
MAH;/\4UO,)C->0*"G,-KYXJ3 0O" )LP:!4AIPYUB^5-]6H[Q@7!(R-70S1Pf
MVLP!#BE8P=)AP$FA+$9P@*U9CSKN&69OQEN><?AFR  18\N1ZW)'P=?#SH*>e
MEQT$9X>XNM- =!0P_#T/7::5W&XH7LF18#_[PN,8'Q,Z='V$>RZP4.)(L#/\d
MR@Z:";*]QLTCBG2>\F4XP^5[OA+(,_-Q6M\JWH^C=["+_>5_#[S!Y15%P\L c
M\5%4_($8+P;'!VP.[OM"7<Y ^?BL/O-]W;Q3.O_YT*-F](OLT4-/;_> =7[Ub
M,%@)\NV@_-2K-43_<C@99M ",M" !2VH_7ON(Y3Q'X9.%%D^3KB$.,;/?NXQa
MT'<TX'^KT74]UW<SP'ASX"55<A_K9V!"L7XN8#"V,7,[PG#^5R$WXH"PX7=;z
M%8&19!MP CQ[9A C*!<Q0(#\83!S-P-]5W=<)08$(T=PXA=Z4B$*R("*0W::y
M-T(P1X%5LT@7"(-;M1:6QX)SQX/1IV2)-UO#UWWW(8.'$3 *1 8W*'=R)!06x
M*!<E"'3 $TD\ !)DAW&,!W?@!X%!2'/  29$9W1 81OAAP5+\07C%GN=9(3/w
M1WS&=Q]W00:HIWI8R'I0>!R=%R-R]W(KT8=VR$GH-W#R=WOLYWX!(Q2'<WWWv
M)Q'YEWK[QQ.(PU5J,!9RA ),YUY:5(57N(B$]"X;>!PO)X!<%8$T  (B&'0Hu
M" (JD(9#N!*F^"XR@(IR9(:!J(2O6'J;L84!9XNX6(NR"(<Y& 8-R(I\-8QNt
M*(LC%$DK,$*QZ%RQPG@G,H$.^'Z"R%4+Z(R*,X"#F"4_$B-(Z'Y]%X?BJ(,.s
MF(+G:"C,(4=S.&Z.48-G<(H9^"T[B(##^("S2(*U8HSR^([DR(%H^'+>6(%"r
MR(6,AX=(Z(-H:(Q[!F.,1GPS&##;E!]Y\ 7ZJ(*L<8@NZ'[$5X]46$%7"'V3q
M>!/AHA8>!AK5(1<J^2Z.T9&M I)QXHM4J('_*(D?B(W4:)'(>((8.(^JF'3Mp
M&)!DYY!JR'#(:)'-^(P B(9U  <[$1=W8'/ X10G.'0X-Q4 LU4GPG,E>9!;o
M!7=F.96*DX#S>"*&R(HE*8R$)!1EN3H%T0+FTI5>N(8W5W13H7-O^2,\!XYHn
MV4GC2)75B(9?R89A^1]'-X]J68YL^8W<F(X&"(YTF86>,SP(@@=Z22O!T9A_m
MZ88GF13'!UATF'TK,0)]>":$L5N]11"_M5RP)$MNQ%'#11'%E1$;T1'*E4FQl
M-$MVY%P6 5WQ99O6,P<)0!0W$@060T]DI@.QH@,U $\QD /UU")T))RXV9QHk
M\)S1B0/3&0,WH -]]D[;B04HMA+)B3\L, .Q*%_VP7AK!6RYME;*5I\*EVW.j
MMI%8QR?\N1G35G4&JF+VX6)8!I\U0)Y7-J!]A6RZMI]EU%\1B#XSB#=ZPS?>i
ME!1&<Q6>)P:CHRB3Y ::X2L,LDS!@P(@8 )6808O\3@!6"1GL&>Y)11"\337h
M,@0G1"F6L@,4:2 ,@B&4\Z);  -=\!)^5Z1,DTI3)EUF !;DI:%[@W2Q]I]3g
M&*#=]J3:(1%6NE98NEPJ*J!3UE_VQW;^UDF[!A5A$(NP8J;NXR@M]Z79PVMMf
MNAGR*!3]]05CF@9IRDE3@YK'87\D-W9T^G^/R *B" ,WVDF!>GQQRG:&VI]We
M5X .EZB+VJB<-&QQP6K11JE4:*F;<:9 ,ZG_5JG\H7ZPD:DK<*BB6HV*.HJMd
M"JKW\7^$"EBFBI@ $C C$ -*]W5T^HF*F:G]Y9I@ 9L56D8%>J#,JE\)J@"Rc
M*1"T27!J1!F609RPB8DH85R_F5RC(1G6VD:"%$?&F1+N"5\-LD;7ZD9E4 /@b
M>2/R!!JQ BLS@)XU8)UDEYWKB675RD:8\:X@ )U8 0(WP&@TH ,T<+ R$(OZa
M:D_L>6+G>HL!J#_T^1AT%( %^Z!E!*74)1=)I$3VP;'DQ5T)2AO<Y5T3 47Bz
M908=FQWFQ3L7@S! H6EX$0*Y=8U"X03Q40::<;+<HB@2@G<O\1\!(I,_TAKAy
M$2(C0K0F\B-Q4"#382]T8QUI(**'X6*;D:#-NK7Y]:P/:V(1RV<V$)^15+$+x
M>@/QN6@:2Z#'L6B^^F>19B@6,VC$: ;;$[4-$BXW(5:7MFGA 0>&E9O@>A^?w
M5K*;P; T +=J9@9\ @?>\D'ZQ )ZT#:/VR1B4JV5JT^>8QH&5KC*>APU0&:*v
M"T]F$&[I2A?$X6[==$0.H4&+@10_,C0$ ;@N]$:#>QR>B[/'H3\P, -F!FEJu
M!HRA$0:C01^ET2&I(:JO$1NS41NW<19/.W^$BV=>2Z!<>[WUQ9_M^;5(5 ,Lt
M< /P5+&;$:69>Q^V04@P@ ?D66="X09(\EI\F;D%E16-FSUW *%?P+@<)K]_s
MFI:= 7[V^;RL@82E2P9R$ />(HH6MY1UZ3F'DQ.11#GR&\!LX!R7-P(XT(X!r
M_'\^.'9/9I<_\L!CQG8K<JJ<)+RLZ(Y]Q74$S!!R( ,)7'$IP,"<>2(BO&<2q
MW"OZ1,$6C(48K,'S6'"OVL%.]\$./!4YL6<D3*?'@<))N,$%2, , [D*/,.Xp
MU\#NBQU$%QSR>T<^ SV\5& 5S 87K'17?&#M^UT@$(MP(AGSJ[]5PC4Z#,4Bo
M,W!TUWXW\ )A( ,M$ 9C&W\RW)+V!YA(\T(( P+X=TKTRV'<B1 V@+8X$$EKn
MFQ53O#O'<;YRE+[K:\19#+]<K,-O7+\3B+]PS+],+,2I>AS+BXA!+,#>.+XNm
MC,!L4,4TW)(VC,1CEL.0VXE]-<87G,&L7& <W(I,9\2W;!TCC'*TBJHCJ<H=l
MJ,);%\7'4< O',,+?,:V',*XC,,],L&M[,L^#,S0+'M#3,S1V(/'G,0GUW;+k
M'*JIO!FK/,Z=Q,+37,EK0,O83'\P\;Y;[!1='!Y?;+R+P<-D[,-FO)G#2#"Fj
MP<9I P>AS&'7DKETC!9VS,=DD,=[W,=_7,6"'*>$O(F'G,C>!,<1ZZS<&P,Qi
MD,$Q, ,4&U_VH0?V;+Z<E+[ZP[[[K,5Q\<F[?$>36Q9K=;_)NAE?T--O8,KMh
M?!].[(,3_<H@H <.$Q6S+,.UK,]/W1<?=L3(K,N62]"_#,3"7,Y-A]!!6=5Ng
M<-5+W,KTO!DPG;GX+-;MR\\Y[<^@S--M,]'I-W<6C=%\[,?PQ]'Z/,CZ9\@6f
MI:WA0=2GS!EQ%X^&)A1$_=&"?=A)37>0_;^!Z)8F3$B1;8Z7_8N4[8 U,-F)e
MS8HV -JK=P-+?8@!Z'2G#8U+1X31_,ZP&@9NB66^"ALK[:!6]M(Q?<DSC0<Ud
MS<EP';]S7=AM\]/X2]1&O=GNW,SP_,Q+C81.73K6;,5N/4*E8]6FE,X+PQF[c
MS-7A[-4K#-8>K&07.DIE;4IG_=4K>!QKK<-M_7>=W,_<;;ET719V7=%XK,=[b
MO=&!_-<>'=C\A\B$31"&?=0@,L2K?,Y+V-@ SHF'/<P!*-D&CLK,#:OK]^#Ea
M'.&:'=ZP?8!D\-D3[LJHW7>C'>(0WG>FC=89OG2'2<X=GMJN[>(5?H"R7=)=z
M>](WX+W96;8N749CL-N;@<D!H\F%]M8X+=P['1[5:MQ!O5R8"\K]VTF1+<^,y
M*,UO-P?>,=U3_=?=04#:K=4[_,T]?!\_',P</N-A;<1ST.73I,S*C=2=G<+/x
MW<1/K>7Y?!SE[6Y7_>7=#,K>3>;BO-I)R.)&3-9FK<SJ/<!-;,_OC<7!K=/Tw
MK>3@>M_JE]?ZK=%]W=]XKA3_K8F"+>"FX4W52MJ!J.!HZ"9UH2!]<7,!+ 8Hv
MR8=@(0,U4.*6U-"R;@,\R<QW31NR^H+YG=%^W))+CM)X$(O.LTJ-#"LW@+;9u
MJ;:Y[>- 3HWHJ[Y%?M.>+-=)3A!+;K_X^^2['.55#MOQ/.=7GN51?<UB'13<t
M43->KLU9W>?=+>8%#>C@_=IH/MYHO.[>T>;L_.8'+N[.K>+K_79U?N[4_7>&s
MGMWNGA-@SLM<!<[T;N;V;H!-9^IC?=WGK3#I?>9,_>-L+=5WSK;Q'=?SK;F2r
M/AF4CM>_OM^9;G$=72@-'M+:*NJ3;N((WH$6WTGM2Q"I'@:K+G&M[.J">AQ]q
M>.OVT<9P<.NYOMR[SJJ^?M&7'NSZ/.PQ4.R&D@?('JV^17"ZE#Z]HZV]>5S p
M"1)=/SKE"ETC(![#A#ZCH\C+9$)1TP1]L14!>UW*J4F"=W!73;3M-F*MV9J$o
M54IW/YRYN3@OL4S-- :'#V1,1$Q>CS9GA[=X&37,!?A\G[K/%AX8LDRFH6\>n
M:C@_(60Q2IB(5#J)#[/+-/*(D_:9UF:;(0+GXTO!(P* K[/R,2-H\BIC4#.-m
M Q3,-4)GPC@%E1H#M",Z.A>2I#"X$@8VD1V OQD8A,0;)"JJ8CO.R"NN,DU0l
M(1!77S7AQ!N&L8:+9-6@\?N+X^#1=1RH0?S<[V(15#I9YTO-1!#>Z0)OL!()k
M, ;8TP($T:?R'UST[S;9/_S7IQP#X@. &L7T!9<Q@/_TWT'8?T_@_UD/!JA%j
MZM\;T SU#W'DO_T' 0\"$3A9+8 (4"F^D0$=0P;$@,%% \*![;<C?M_@PTWCi
MJI;POQ<H7'0+;Y%6M<)%_!$X$",*7_#;3=O*-R$7CP 27@0/Q%:UY.R%+2/8h
M [\ 2@L# ,L(E %J(9U@0"^J ?<J8:DGAX5EF."_<DX!*SJ%+AAPL&9 #M !g
MCV8+VKC]<M)PP/MI=K:HQVV&!* &L%P"L#\)( ]&(-BPF!Y*,:L\M\%K$!X_f
M5$82 -Y) $RGK^T=/2@7O@#;L0^&,(HE@ ,4?Q9A J@_WB&6E Y(R,(2P!NIe
M&8X0A2A"L,,(4=34D .<4!*VHDI("B_A-RD"3H (O  I4 2&0!%( E:@"+P d
M(? $J  2@(1U4 YXPA:2F]H,(R2&;Z3-H "[U2U8@"E,*%AN#&C"O< "VH Cc
M!!J-"A$>+3:0 'H5; !6A5#H)8!*]"6F"($J6>'O+)R*(V*\R, IW"='I#J<b
M!X%0%F)"CL@0#HTW< MEP^G. D7P(3:!\]@%#;(H5@1M<X,L(#O%HDE&!^T@a
M'F2$K:@/1I$_&!\"X9D8A*DP52%"V, *4P CM(:/L!!V0DHH?XYA)GQJ*^$:z
M14*-& J+VC64 Z/0([I"MG-'GN'$R F3 GLXC#$09SK.$<F( \P3[CXYT!(5y
M7T<LA6T&Z,W!D<@12Z(KG *P4!;20EN("W4A+_2%P- .TJ':90J/(5=4ALQ0x
M\=E$_W 22T<U?(G9L!MQPU[U?L#A'!2'Y-!F5"]UEPY#7UQHA^]0D<G#;H$&w
MZJ';P(<RHX#P0_OS#UE%0)P^ Q'Y%$1H=0.W'D(X@!,0"(:];D4$)6"?P!Y*v
M,+J(#W!Q&'C 7@ 2;\ %H $?X!A4G1M  ;EE#QR]. &8(!,=V (RH OL@-4Hu
M/=)  $H#,F V-CFRH#7,  H0 50 _O$)IV+[SHMU&P-B@4A,(Z, $)<#\[@)t
MN>\P+,?FPF>. !=P R(@!>C&S6 ;>T +B %*)#S"@.UX$V1 #Y !Z#$]YD;[s
MT*<T3F""%RS -L;'WT,>>:-:\(TBH 2@M"EQB_1C#)@2MJ$$R(#_2!'H" DHr
H 8^&#1@$!(D#%.1U% 'Q\38J'3>41U@ A412%O(]OL; H!U70A]@C!'Hq
 p
end
----------------------------------------end---------------------------------