I5110401%DBSTU1.BITNET@cunyvm.cuny.edu (Hello world ||) (07/12/90)
Hello all, This is a small change to the minix-ST ACK runtime library to replace the (quite slow) division subroutines. The new _dv[iu].s routines handle some different cases to speed up division noticably. Inspection of my private source pile shows that most long by long divisions are done with small (well, 0 <= x <= 65535 8-) divisors, and just that case can be handled quite fast by using max. 2 68000 divu instructions, needing around 400 cpu- cycles (compare that to well over 1000 cycles for the original routine !). Have fun, --- Kai-Uwe Bloem, i5110401@dbstu1.bitnet --- === snip === snip === snip === snip === snip === snip === snip === snip === table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 _dv.tar.Z M'YV-7\C82>-B#H"#"!,J7,BPH<.'$"-*1 BCH@T:-$ J,CQAD:.%65\!%FQz MAHT8-4# H&$#QL48,V; \ @C!@P9&#].W,FSI\^? .K,H1-&#L(Y>0P";2@Fy MC9NE4*-*G4JUJE6>+LB4,>.T#(BL Q44+#.&SE<Z9?#0$3N'K%D7<MZT8>OVx M*YDP1.F6_2IFSAP%"D"$ #$GS1DW9<B 8//&S1D09-(,U!HX1(O+F#-KWLRYw ML^?/H$%7!B&GS!TY:>B@=0-"3!X02\*D:5'ECE<AC,NT 8$B38T8-FG4!$*Fv M+YTZ,5PTI8.83@H09M[((0RG3&(7HT& &!%#>\T7,62\R %#N]/4:<*P(5UFu M8.'&+D T<2J=/9DZ8[R^,4,831HS9KU1G1QXI='8'-@)IMUV(JDTPPLSC5<>t M"$)Y90,.'$$F61T@.#64'/C182!K=Z!11FGMG0@"'&_XE888;)01'Q7^S0'"s M&&B$X5@9E260P()MA+%&&39R1U@= YK!F%#QH: 5:G8D!EU<N[7QVA%.5*&Ar M>R.2]D8=(B*60F6AE6GFF6AR-MH4<GDUAEQM-'9C&&W9.(:.K7F5HQMDQ*B8q M4R"$01U9Z;'! @AMX(<&='2B-=T=8;RF0W8+@A##<Y&Y5U\/*E%:Z8(]^#!Gp MA2#002 <A])A(FNE'2<':W2\06%;<L0G!9%UL&%6&C;6P>=679'AJ78R8"I9o M&EKQ"0(/6_(JW;"?A@I"''6\(6(9;IC%*0R'EA:D4T^"P&FFR&(KK(*?SF"Ln MIM,Q"P,>-F6(0H<NR-CL'/7Q"D)C;+P6@PVMI6;C'>6",":ZGX(J*K76IH&Mm M63HJYJULOTYW)VMBN*G>&+GB)26UJ7EE1J.MO59:=1Z?.UC""8<!!QQLI'&Gl MB'+N!\*%&6;*H8 G%G@@;W?&)UQY8^0Q1HQS'+QRI30\9ZV)<A#<%F_W>14Kk M@X>.,$.SR9)Q*+GX3B?&TR 0'*ZJV%H*\'))0UNIM&3(.@=C=]S;I6O]_0>Qj MLG/4(8:I891%9IJ$%V[X98"-5MH9O#HZ:QAGE#&I@C_J %EY8#^+<,)D=$=Ni MUZ.EE9IVEG<^;;779NNV=F2(-#&X)P*6P%A[N8"66F()E,:D"<09I0ML)(#"h M''"DL (+8<20P&"MUO%JH&2049I?"O3^QN_!#U_\\63 L/R]SUJ/O?#$&\]"g MZ]]_;F[UOLL8/!DS(._]]W.$$25D,[!_O?L)D$$#"RW07@KH9S^O3"]79BG,f M8=C#N*'$+@%'J]7[:% ].@P%>/V30?7$ +,$P, ,/AJ,^I2E+\2<H4#W^T'Ue M3(A!]'TO#T0"00M 8$*/K=!:+:1!" .E+#=8RRLUI!EK .4_!<" =Q:D0PMAd ML,$.?G"'F9M."<MP0A&E<(547.(.86BC&0:11PGPH1+OT#\=?D^,0*2BS]Q@c M1-Y%L(7*^QX<3E84KS L=6L93 _V.*>IQ:!TQPJ;N#J5@"1J,7V!W)1*0*#"b M!&0L#@G( 0A?&,,9JJ]D(-##B60%.#@H0(]\O-/49 #(R9AK6>"30_7&T 8Xa M+/%\,H#BL;J&RB@R<H-CF$,"<##)P7!1AG:3DWI*$P8RO(8K;N"5B80%2DZ)z MTBLS**6SVK4M/'S0#-A<92LQ.()W71.;Y_/>8/1E2W[Y:VT"*UO!&BD&_R1 y M!F;0W^_(V+KSS6"'];O?",D O%6RH5;TC*4<Z5@:KIG+!8N*SG1TMJ\!K;%Zx M<X 4'#*XP3) \HF(-"6?$-HA&ZEG/9J,RZ%\N"4.(28_?BE*'JJGL_YQJW5Mw M%)^, GJ^. XFGW9$G<.RA5"(2K1_,9#G3/L7/Q>*<)9>V6<_^[<AE\)RATZ2v M 4<Y];J*[8L_<VQ/2<<D4Q?0M'/X+."TOH3'I;XQH#N,G%FJ^B2?NHRBCB30u M+N/9S#YZA0;2%&3$#*JLL:D*!*+R)C:S24JA)D!K,FA!#.SY/<8(Z$9?4AU>t MJ\>&N7%SL4;-&X#XJA@7>+9Z<<$#&RY;TQU^Q;,=RI:L.J=-5[[OI3:%;"OKs MJ,Z_1A&7NJQ!/!/0-S&\$JS?:\H9(B>'0_46<'NY;0**28;#8E:@@T'CD?Y&r MH+)T"5 'U)4":L"[XL@5?BR@@1BJEY8S /6IWU,K>_JF*QL!"FV0E4-I]K*Xq MQIWH+SA X@7I:<;!W'&G9G'7+1WIQ-VR\'VQ_:47U8B6F!IR@CMDJXH$S,X"p M8_$,+=3@$;N:O?)Q3X?,(U*L"EI$#B_WI??\WO1&G-3\)4 -K11>\L:D@"(Do M@0A)L((6$L I&R@@!SKH*AE'8&,<ZQB JR>&N8@A]F9RI,S2"QF[SD8Q\(!n MLKY:RV034-G1!H\[Z+VI?S:[S]-B)P&A];)S2_L],Z?V:JR%X#9?R^;!O&FVm M!2580.Q0AX)<Y<^ 3@A'+I*1C8#$(X;FB$@2#1(:W. &Y5E)2VPP@QM4>B8Jl ML8D,;K!H& 3ZTZ .RE"*<I2D7*4I3PFUJE?-ZE93)2O 0HQ=^*R7M]QN+;1[k M"Y5J;1>\A('7RJ'>:'RE0,0HAC&.,>C@#L?L9GM&<:9!C6K2AK?8S*8VM\G-j M;GKSF^ ,ISA#08YR4M.<YRAT4->AE)$R#1[QD,<\R121>MC#)?C(AS[3*<U]i M\G-5S0;(H4)$D+H;!(,'1>C=L[(0ABI2TM1^*$1=*M&)K!.EZ;#(13"R%XWTh MA2,=1:Y'/]).D(94I.[T+4E+0A#53B09*9F!2HBZ4I:"R2JR=D5ISLZYSA&Gg M(#:UP4UPDM,S[82GC(%@3WV2$J $13Q"J>=0B<(1HQSXJ$B!8')+6]"E4CE(f M)FXN8=*Z$ZDZF:I5L<=5L))5A6H%@ENQ=U>]^A4R$P.M8G&VEHE4Y=>CM3"=e M/JSKW=(-Q<(U+J3R"5KJXKJ[X 42WM#+7K;4ESG5%C +JE,K!EN==J3UW[_Od M5<(6*[K&V, Q-J3L="&;NEGP=K(RI$SSE7(9S&2VQG[CC.$,Y1F! @ZT, B-c MX44[&I&4EK"F[0MM4>.55YQ4!ZO):@0RR-K6]OFUO+>&;&93$=I8\Z_*MVWOb M;Q-5W A#-YIC<@YCWIMBCEO=M0AFY_!G=N(45%^J/RYR6 =!Y2Z72LV;;I^Aa M@P>C<W60T1V=ISK@QSJN(WBPHTK5DVMGD1:X)A!UP#OMTT+Q$P;S<U-B!3]"z MA4$"=#S)HV)E@';0(SU$\A<F%H+AE%'3]($=MCU/=50:)2P0]$]PM$-9!0>Ty M=8!Y)"ZA1"=>\4=<MRT5=$&O)4OLTG4#]DB1U$L@H& &A4DAQ4FG\DE Z$Q"x M" *D='?,HERLY%I.E5EE]H76QTZY-%=;5$GF-TRN9TS0<1[H1W=U]4P@$$V*w M5TW?M%MAR$V"-5@M.$XV4DYNT"^4QS:7YQ7LY$[P](%?E6(<J$^&QT]LX$\ v ME4$Z2%!)-8D<=6ZY!W CXE83!5..9%$>!(5*M2CZ\E&9M$DCM5H;0D-DD8(Ju MQ5)-U3VP%%,7^%6QA5.GTS /TU.\]5-QMHM$%693J%25R%1\-H;01352M2A4t MQ8!693-990=;Y8@95&>$(59Q8'/!N(QGA8GI58+L\2T5(XIP)09RQ4M8N$=:s M.#5XQ75[569^M2B!94V#%4^%)5.'%66*Q5A5]@:/]299I@!;UF6DE5GHIS=Wr MYUEGEF8+&5MNYA1P%E1R)H:X"%QV)A<\F&>IL2C*)09IJ%L0Y3>_%5O"15S&q MY3?(91;*Q5QKEEG2Q7Z!(T2IM5X(M%W=Q8YA<(SB15YX8%Z=@XSJE5V6]UXFp M$E_SM5949%]R@%\6N#\8I(&,18)#(1TMIF0QA@(S!AA%EF,[UF,_%F3&2&0Wo M)I9(5CY*QF1.)@>>I#-<U0:N5I=V>9=XF9=ZN9=\V9=^^9> &9B".9B$69B&n $>9B@!CY*m l 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
HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (07/13/90)
If you would have had a look at the support functions for the c68 compiler, you would have found just this..... Christoph van Wuellen, Bochum/Germany.
I5110401%DBSTU1.BITNET@cunyvm.cuny.edu (Hello world ||) (07/17/90)
Christoph van Wuellen <HBO043%DJUKFA11.BITNET@CUNYVM.CUNY.EDU> writes: >If you would have had a look at the support functions for the c68 >compiler, you would have found just this..... Sorry. I don't use that compiler. I have enough memory for using gcc. BTW, you should reorganize the runtime support library. As far as i can remember you've used the sozobon c floating point routines, which are not very good. Perhaps you should use another base here, like the old gcc routines (they are mainly written in c) or the 68K floating point support pack for ack c. Regards, --- Kai-Uwe Bloem, I5110401@dbstu1.bitnet ---
HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (07/17/90)
Well, I took the sozobon floating point routines for two reasons: before I had MINIX running, I had CP/M-68K, and the C compiler there uses the same floating point format. When I wrote that floating point stuff, the CP/M-68K mathlib was the only floating point library I had. I am hesitating including support for an 64-bit floating point format as long I do not have a FPU. Since the code generator is strongly register-oriented, the allocation of two 68000 registers for a floating point number looks strange to me. If I can allocate a FPU register instead, everything looks fine. (Third, I use FORTRAN for my heavy floating point calculation. The existing compilers are much better and I do not want to port some 100,000 lines of code to C and learn that the vectorizer is not good for C. I included the whole floating point stuff with TeX in mind. For this purpose, the 32-bit format is ideal) C.v.W.