Path: utzoo!utgpu!watmath!att!dptg!rutgers!njin!princeton!udel!mmdf
From: V61%DHDURZ1.BITNET@cunyvm.cuny.edu (Ronald Lamprecht)
Newsgroups: comp.os.minix
Subject: Performance increase for the ST ... Patch
Message-ID: <21374@louie.udel.EDU>
Date: 9 Aug 89 19:56:50 GMT
Sender: mmdf@udel.EDU
Lines: 198

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  changed to move.l #0, (= 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! @?"14,F#X@TF:J#,!:$8][ R6,#QQH7"3.QW(@@Z!-N8+?,9Q @8+'B(!H&BA]S5<3ZG<#%TH$0034'D>5-Gv
MY>;C=P:>EO-U#ANHA^F@.1QFCL0V8LIT5DI&"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<<:\<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:HDM33@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(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)[?*52F7#,/;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&_+_-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 Y(F84QN&&[RG!3Y @@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>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 =7[Ub
M,%@)\NV@_-2K-43_!R=%R-R]W(KT8=VR$GH-W#R=WOLYWX!(Q2'!PO)X!<%8$T  (B&'0Hu
M" (JD(9#N!*F^"XR@(IR9(:!J(2O6'J;L84!9XNX6(NR"(6(%"r
MR(6,AX=(Z(-H:(Q[!F.,1GPS&##;E!]Y\ 7ZJ(*L<8@NZ'[$5X]46$%7"'V3q
M>!/AHA8>!AK5(1((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,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&)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@/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!CQG8K2(BO&<2q
MW"OZ1,$6C(48K,'S6'"OVL%.]\$./!4YL6T<^ 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'AS+BXA!+,#>.+XNm
MC,!L4,4TW)(VC,1CEL.0VXE]-<87G,&L7& AS&'7DKETC!9VS,=DD,=[W,=_7,6"'*>$O(F'G,C>!,<1ZZS<&P,Qi
MD,$Q, ,4&U_VH0?V;+Z36Q9K=;_)NAE?T--O8,KMh
M?!].[(,3_0_;^!Z)8F3$B1;8Z7_8N4[8 U,-F)e
MS8HV -JK=P-+?8@!Z'2G#8U+1X31_,ZP&@9NB66^"ALK[:!6]M(Q?K&07.DIE;4IG_=4K>!QKK<-M_7>=W,_<;;ET719V7=%XK,=[b
MO=&!_-<>'=C\A\B$31"&?=0@,L2K?,Y+V-@ SHF'/C'>(0WG>FC=89OG2'2(5?H"R7=)=z
M>](WX+W96;8N749CL-N;@,=U3_=?=04#:K=4[_,T]?!\_',P7Y?!SE[6Y7_>7=#,K>3>;BO-I)R.)&3-9FK3@>M_JE]?ZK=%]W=]XKA3_K8F"+>"FX4W52MJ!J.!HZ"9UH2!]<7,!+ 8Hv
MR8=@(0,U4.*6U-"R;@,\R- 3HWHJ[Y%?M.>+-=)3A!+;K_X^^2['.55#MOQ/.=7GN51?KLU9W>?=+>8%#>C@_=IH/MYHO.[>T>;L_.8'+N[.K>+K_79U?N[4_7>&s
MGMWNGA-@SLM9,_>-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+3:0 'H5; !6A5#H)8!*]"6F"($J6>'O+)R*(V*\R, IW"='I#J\P+,?FPF>. !=P R(@!>C&S6 ;>T +B %*)#S"@.UX$V1 #Y !Z#$]YD;[s
MT*>:-:\(TBH 2@M"EQB_1C#)@2MJ$$R(#_2!'H" DHr
H 8^@$!(D#%.1U% 'Q\38J'3>41U@ A412%O(]OL; H!U70A]@C!'Hq
 p
end
----------------------------------------end---------------------------------