[comp.os.minix] ST: new _csb.s,_dvi.s,_dvu.s,_mli.s,_mlu.s for a small speedup

I5110401%DBSTU1.BITNET@cornellc.cit.cornell.edu (01/18/90)

Hi *,
here are some files i rewrote or altered some time ago for having some more
speed with ACK C (which i no longer use, but that's another story). _csb.s
contains ACK's case selector routine; my one is rather cryptic but makes
efficient use of the 68000 instruction set, thus being a bit faster.
_mli.s and _mlu.s do long by long multiplications. There has been a posting
with a new _mli some time ago (by RAL). I found that code hard to read, so
i wrote my own one, which besides is slightly faster in the common case of
multiplying 16-bit-only numbers.
_dvi.s and _dvu.s are just slightly modified versions of the original ones,
dealing with two special cases to reduce the shift amount (shifts are expensive
on a 68000).

Enjoy,
--- Kai-Uwe Bloem, I5110401@dbstu1.bitnet ---
PS: Thanks to you, Glen, for fixing that info-minix mailing problem. Now if i
    had the time to send out all my outstanding projects...

===snip===snip===snip===snip===snip===snip===snip===snip===snip===snip===
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 cs.shar.Z
M'YV-9<:@>0,"#X@6(+Z,F2/&Q1P%<\J0 7'BA1<L+^:\V'@"A(^$"QO. <&#z
M!\47)Q1@<4&FC)DT;LJ <!%2I<. =&;2*8.'CLV(8W*ZD/.FS4^<,\F$H1/Fy
M:-"98N8\Q*(RP<VG+G;VM!E21]4V;^R4<<$F 8HY<%*L8!$&1H(0(,:$B0BBx
MY9PQ<M+ H?-&SM>P9<RB5<N"C%NX,%OB^2N6K-FVA,/$>%O799@Z;'*JJ=,&w
M#H@P9,C(*2.5<6 4D->2F0QW!(@R;NCD)5V5C!@Y81*L9C'#C,H87K$D -NXv
MK.3"DRFW-',Y,XC-G3^''EU:N)@R<1+0\"U<3>?',5*HE!$\ 6@RCD?08.N6u
M\IPU>I]S]GR>^M09.A*,^8X:!F'#M5V7W6XRB%&5&#$E$(,8"5 F%UT1L8%3t
M7R"X\49.9KQ1AQMDF.98?Y&Q!L(996@VGW2BD395 M[! 9YX5&%1Q!!!3%%$s
M CV ( ,,*M&0'W%CW9' "#/66 0++9R55E4M6L6<3U2]H$!  Q5T4$)DV)&&r
M0Q!)=-)%&6V$DD=8:ND02295E-)*R\$D$TM:.B645E!>)1111JT$E%!*,24Gq
M5-6I! )<<Z1Q1DP3L?&&&V?4E8:6+0D:0@N45FKII9AFJNFFG';:J:0@@$5&p
M&B]Y*48>("P11AHM5'&'3$(H6D8;(*"01@TQQ  ##3#$ (1M<]!11PPNB)$&o
M'3'1D0((&<H! EIE2.0"J"" ,$(,U?;Z0@PRO) ##-7"=&P:8; !PFA:%KJHn
MI)ZVZ^Z[\&8**A4$C49&'6/(1 <:,KG!V77.OF'&LVB0FM,;<)2!&QUI+#K2m
M'$7)U 9,%*;1&5%BM0$;'2.A$898(%P'&ZAD+#H6"$D,O*],HZ9;\4AGC+:4l
MPB#L&X8;(," AZXP] P"A2L["NG&(*3Q<!OE2NBLS6Z JC///@?=<AHMQ?;"k
M:$@G1C,<JSHK%\[7$6RPEQ*:D=.I(,1@0\C'?G:P&_E.B\6@\=9M]]V5J@3Jj
M:&<8O9.S=<P1!HG!#0I" B#H4!>X4T/LU]QP52NYY*L)335L'4+^&AYM)UX7i
MMG'4<6$:&U,[.>4RG#OKJAPJK+=P=NK$4YU9IE$>D!\.MI9DE(TFK!PXUZ>Bh
MAV4I^1^/PN%>O.[($:_;#$@:[]['+,_P&8=UT> \&>LE.5A58[ AAV/<5\4Qg
M'>2W!U?C?1V(70(Y<)> &'"4%8/\,9V1?E46TJ&;]E@ COF"1;[DK.]1E^/0f
M@>J7 !G@KPSZ*\MJ^'<A\@&0/. 3'_EDT"#$N&%<Y5)=UEKWN.$ 9D@SD$$+e
M8E"8&8"O,^G1F1EF: ;D4,9H(*@#'!+FK#OT92("LUS5<I(C</W@0 5+0&^Jd
M,H<[A,%%J^D@"/) &A:(S6Q")%K9<J(VMG&,B75HB)"N98,6J@0_+X1##'?6c
MLYX5YC!%&XD.>0@"'\H!B -CG[-<8\0#L6$.VI%?$Y^H&P-.L8I7S,G4AGBUb
MU6G-65M,V]J,]<7D <8%0MH-&620P?%E,@9@9! 9S6B=B27 !F:0HN_J #PKa
M6BA4?9&)'==0,X*4K$?E^2,;TL/""0J'*'C895FN51A."F<_:I0@#(KI1__5z
M0)!A3!\SA7.>(?42E%BH07EL@YOGL8 &!L*"#<ISOO^Y+SLW>& $"RG%T(VNy
M=%BX 3D)*$$ SH^!.%#G!E7I2!*J! >WN^3RTJ(:&O2.-'P93?:N-Q$RN-"2x
MQ1$,04G)(OY(!D8J*4(2B) $*V@!1R"P@4IR\*-+CE&C'/5H]+[7G3G(P2JRw
M@8,"I$0E@A@$(5_(4AVX%)&)5 1,&N$(F7)JAYV.I"0G61-+7.*FI!3U3UF9v
M'53Q!-4^-45/2"E6H#2WH4(=BFR+:M0BR\ NO)GUK)P"E:A(1;J)H$U5K'(5u
MK&1%*UOA2E>\\A6PA$4L2B9K6<UZ5L*D9;IK92L&V^K6M\+U08:%$%U&:UC3t
M((?6REJ64O.JET3PI2]^5>A?- OB' J&180I;"F2?5C$0D4Q9UD,#AB;U<8Zs
M1KV016NRABM93%R ,I5Y5H]Q')',_E8SC^'L:6T$%]!^B\ A!G<.2&.#THI[r
M,Z>QL8W%95ES-];($;;$65Q+@]=N9MM$DLTE9T-5%RGIMI_!;2QEO:Q\[_8Zq
MP_'-;S0+W.#*4#BX($YQAK&<XTQWNL]E48&:XTGG  PZT3$,GH8K<+4V*4+6p
M??=U5MF3[+;"IJ(&-*+&VYV(5@D\%-G'>2%^(XJ9YTL31M2A*TW+]$#FT &Bo
M3YE2U.,YX9=*RBB,*,Y"R%A#ABH]*.P-& [?^"3(P1LVEESFPIJ%70?1P(P@n
MA2ND*#+72,,:1A$Q<MPAS>R(QP,3,6<@.*)UDKA$X0P2BH:DXARL.%J#F1D$m
MD5SOL58TAVB.46VD1.,Q83A,Y+;QC3<,,QW)_+,\(M!QUD*SFN?WQT RT8EPl
MEJ*<Z4Q:16[7:E)^))[1*TDOK@AWGYRF?C3XR5!:LXPU+F4:3MECN)#8#:XDk
M"%@4.LM:U@7)6/!1573)R^;]\@W!+/8FTRC-95LG,PEX9BB;;4SSA,::QM9Fj
M@+H)8W"J9)PKGJA##QJL6-;EH15U$6K"\SJ4=O2C.1(I%DCJXB -R=TJ]=Z2i
M6OK2K,A!IC05B$VO](4VL&%+#^GIES 2U#%]I. '/Q-2U623-L5D)@9/ U3Ih
M--6B5'4I5XV=5J<"*J\B"L]A#15FCE6_/,1WOC!_U][*<(>\T&$G8$,57%OUg
M*A#$Z@VSJM6M<K6K7OTJ*GPMUK'^RBP*08NPFJN687.&6&YY"UQ%>_)CRY Nf
MR;X\YF!/:]1!8+T'D::.?=F7KT<SAC<<*@U&3IRD%+0L,5P(#=G-H9A[^,-&e
MYY"A(+##9Q1J9*+,?7(]^ BVVH"9G"B."6^X@PH@?X>YRV!9BV(#JDSF]Z#-d
M<<P_' D."P_L02%.<HG7D<J=\_C(JP )AD(#Y><^@[K?7>^+#OW@^W4A$)#^c
M\*C_" U6[W@0P/X,LG?]\9-?^;&O3*%A4.C=:6;VD:!@+/I#^:OX?L?@DCYDb
M=<A)P9"/]N[CL']6;-_8.6]:W& /ATGS_9%3P%LD1)[K"K/BOG 8D5F-I'^^a
M%C9B(0>HTG9M !:X]BRE%SG9A2K1)Q.&8B'VTG1+XUFPE0;YXG=]QD-FP :Bz
M$SC$IQ<')Q<,XS!9EUT183K5)S=T$W8NN"GU!1<;0X">$V",EQDBB($WDSD1y
M)F&5<X,,4S^D\SB&HV Y48/@,GYX]T,T0QV-1V"G4SF*<@<_<T=-2!I/.'8%x
MMDGLP1;8 F (1114E#E5(7(<MQ(9]V%C,5 A<E"_$SS3,3Q51C[0TQ92)#@@w
M<U_!0F7UU@:8)%''TP+C!A<DDA."MX,YY"&95 ,QE@(S)A,FISI]LX<EA&JZv
M(0.%40,'0B()  .U5B$0-#-_1RJ@. ;Y(A71YW+"D3]_V&+Y@P>MB#PPD!_Gu
M$XN;&!B>*$7Y(XJ"1XHQ88HJDHI5409]$8N9R#\0U(K8E "O:(M8,(OSDR#Wt
M(T5FIR.8YRRU9V.M6&T($A@.1(US(1.7IQ)PT0/F&!?AF#:*\P7F8A#L" +Fs
MV -?@1EUX$U1U#MD 8\YE(\&80=D,5+YT2"4@0+C@W?P)SYE !I%-G_:N(BZr
M&(H[H3I]YAR^&!"G*#@$N$!EX8G(N$ZN"$&PJ$PJ 8V6F&)D4 -NR$J356^.q
MT184U23K!B/E>(YP\ 92D09BH'GH2!>75X4[*1.U!X_F^!OSA#Z9Q(T)TAO@p
M2!?9B 4SF2/52!X)T8X@@ ;F$H_#B =GH!O+M$E2Q!,"<3,D\G>(: =9N96:o
M- -2A (3\T$38V3_!UH!XVC! A-/47TP@D')0X^%5$Q2% ;ZZ(]4N5-H,(\>n
M:(^&M&2!R8_[R :71DA>21F F2. B51JTTETJ(B7J&6L=HE5<1X;9$.] P(Km
M0)F?&1HA:8_(,S_=E /A])0_27:*8Y560IM8B06"QI+UU(B4$1->LFLRH8=_l
M<VHFM9GELY>'J4D&)9F+.9@N4)C(68\P=H^VEH\YLE-4*9B&*9U=J9:4(0:+k
MB7<&@9W;:9SJ<R[/J8^$:27^")T)\&;L-)";$2P4^"RO-8+'D@<P8FWHD4GKj
M09WG0IJ4B2:2A)G^^9A09$_GD9K<HV+4%!JM"#T ZBRE&3($>IG'U)FQ]IZ8i
M]CRG208,*J&K"9\MICR 6% I"3P'TIH&$G!5<E,)87!&U24^91$,)R8=\7 Rh
M*G%I@A(5QU07YP(RNG%2A558055&RB<@!U5107)<Y08F!U:,LGHLIWE?]X)8g
MV@(S5W/'@G-$EBJKPG-S!71U-71X971[-2Q*ARPE EA.-UCH45C80G6)=76,f
M!4)1QG61M2Z4E:5^JJ5C5W;A.!)VI'9\H3IM]W9QUU]T%S*WYWE[5WYE5@> e
M=XB$=V3 5RVIMWB-YSF4-WF19WF8YP8ZR7Z^)1.?QWUD('HC\7N0<WJ:^A&Id
M X2>JGRQ-WNO&I1VIW:I*JDC\8 5TGNN:GJ()WS$YSG+]ZG)&JK.QR_0)WW/c
M]Y/6AWV\-86@9WZM>F3@)WZQ)ZG!A7Y5:#KLQT.(>)#F0GKT9WSW-X#Z5S /b
M$RUM\'^]=Z@"J# %6!0(2&<+*#DKXX *%8&Q-!&!%307F(&BI4,*TX$?.!) a
MF(,DF%HGN#(I.'8K>*5_"G8Q^!JQ08, !BX-*X1?PX,,N(6<BH-"2&5%R#E'z
MV+%5V:U,Z"Q.F!E0.#E2&'E5^%T2F84]N(68Z)*248-A^ 9CB&%F6*1"ZH%Jy
MF#L3Q3NV5B(J:6)RJ)O>9(>/*(GX58F X8="8I(P((AJ28@E$GB 5P<-R94'x
M(HV?&)772';[68M'>;;>F+;I.(Y.*910F8[ ,956\HZW.1Q\.9V):9V-R9[_w
M.(?&T9UK69#!52XR0P8+213["9,7Q4]O2(YV"P(U>9,Y68!SN[;5&)2W*4#"v
MX;:>:1U)*;=,*9.7&Y7K2)6V.93"P1-HV95-)H-X$):,@JJ5>I9].6X#V986u
M W=GYR]M #!^-RIU"3<Y@9?C<3M_VTNU^QG-:26$69Z JTJ"*YC46[@<"IG1t
M.YG2:YGRMFI+YJ%S>)2<Z4FERY^A.:$"^AD?&J(.*K4NZ;M-6[G=85'L5K?Qs
M&)OX496N>Y6PFYLFVJ#ZYHAPX9L3 9Q62XG$V1CH>YQ^FYR]M)QP ;[:.Y[/r
M:;T2&KA7.;C]R+TWR)TM)$7@F2/MN;V.&9WFB;UX=YWI&<+N2:*&A +SB2%.q
M=Y\8F)_["9K^*9JV]KZ5:1(82KZM:$\DJJ"H:4'SZ\.(J4KO"Y[B:Z#FV[U0p
9A&X+2H?S2\/A]A\&=;\JZ3SUBVZ2RVY2 J"Ho
 n
end

=========================================================================
              " This space intentionally left blank "

Kai-Uwe Bloem, I5110401@DBSTU1.BitNet, ...!unido!dbstu1.bitnet!i5110401,
I5110401%DBSTU1.BITNET@CORNELLC.CCS.CORNELL.EDU (or other known gateways)
   student of cs at Technische Universitaet Braunschweig / w-germany