Path: inn.qnx.com!not-for-mail From: "Bill Caroselli \(Q-TPS\)" Newsgroups: qdn.public.qnxrtp.devtools Subject: Re: OUCH - A LOT ! ! Date: Tue, 30 Oct 2001 18:58:04 -0800 Organization: QNX Developers Network (inn.qnx.com) Lines: 219 Message-ID: <9rnqu1$t18$1@inn.qnx.com> References: <9r6qrq$62e$1@inn.qnx.com> <9r7eco$hm9$1@nntp.qnx.com> <9r95ui$mk7$1@inn.qnx.com> <9r9o52$31h$1@nntp.qnx.com> <9rbnpc$e0t$1@inn.qnx.com> <9rcouq$4tf$1@inn.qnx.com> <9rcp6g$556$1@inn.qnx.com> <9rdsnu$jjp$1@nntp.qnx.com> <9rekks$9a5$1@inn.qnx.com> <9rhtrp$85j$1@inn.qnx.com> <9rjms4$kq4$1@inn.qnx.com> NNTP-Posting-Host: pool0272.cvx9-bradley.dialup.earthlink.net X-Trace: inn.qnx.com 1004498689 29736 209.178.177.17 (31 Oct 2001 03:24:49 GMT) X-Complaints-To: usenet@inn.qnx.com NNTP-Posting-Date: 31 Oct 2001 03:24:49 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Xref: inn.qnx.com qdn.public.qnxrtp.devtools:2317 New memmove() OK. So there was one bug remaining and it wasn't really 66 times as fast. But here are the new versions. I did one for QNX4 and one for QNX6. The QNX4 version clocks in about twice as fast IFF the moves are on non quad byte boundries. The QNX6 version clocks in anywhere from 3 to 10 times as fast as the library version based on direction and weather ort not it is on quad byte boundries. Enjoy. Report any bugs or improvements you may find back to me and I'll report it. -- Bill Caroselli -- 1(530) 510-7292 Q-TPS Consulting QTPS@EarthLink.net "Bill Caroselli (Q-TPS)" wrote in message news:9rjms4$kq4$1@inn.qnx.com... > Yes. > > I have rewritten memmove in asm. The results are so go I can't believe > them. My newest memmove is clocking in at 66 times faster than the Neutrino > library version. When I am done testing it I'll post the code. > > -- > Bill Caroselli -- 1(530) 510-7292 > Q-TPS Consulting > QTPS@EarthLink.net > > > "Tom" wrote in message > news:9rhtrp$85j$1@inn.qnx.com... > > > Why do you need memmove rather than memcpy? Can your source overlap your > > destination? > > > > Tom > > > begin 666 memmoveQ4.S M.PEM96UM;W9E430N4PH*"CL)0V]P>7)I9VAT($YO=&EC92 M+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+0H["CL)0V]P>7)I9VAT(#(P,#$@8GD@42U44%,L(%%44%- 16%R=&A,:6YK M+FYE= H["CL)4&5R;6ES2!T:&ES(&UO9'5L92!F'!R97-S960@;W(@:6UP M;&EE9"P@87,@=&\@=&AI6]U(&UA:V4@ M96YH86YC=F5M96YT D)"3L@141)(#T@14%8(#T@=&\*"0D) M;6]V(" @("!E D)"3L@14-8(#T@14)8(#T@;&5N9W1H"@D)"6UO=@D)87@L9',) M"0D[($53(#T@1%,*"0D);6]V"0EE H*"0D)=&5S= EE8W@L96-X"0D) M.R!I9B@@;&5N9W1H(#T](# @*0H)"0EJ>@D)3#DY"0D)"3L)(&=E="!O=70* M"0D)8VUP"0EE"QE9&D)"0D[(&EF*"!T;R \(&9R;VU;;&5N9W1H72 I"@D)"6IB90D)3#(P M"0D)"3L)($]+('1O(&-O<'D@9F]R=V%R9 H*.R!C;W!Y(&)A8VMW87)D"@D) M"7-T9 D)"0D)"3L@71E"QE9&D)"0D[(&-A M;&-U;&%T92!N=6UB97(@;V8@=')A:6QI;F<@8GET97,*"0D)86YD"0EE87@L M,PH)"0EC;7 )"65A>"QE8W@*"0D):F=E"0E,,38*"0D)>&-H9PEE87@L96-X M"0D).R!A;F0@;G5M8F5R(&]F(')E;6%I;FEN9R!B>71E"QE8W@*"0ER97 );6]V2!D;W5B;&4@=V]R9',*"0D);6]V M"0EE8W@L96%X"0D).R!R97-T;W)E(&QE;F=T: H)"0ES:'()"65C>"PR"0D) M.R!L96YG=&@@+ST@- H*"0D)71E"PS M"0D).R!L96YG=&@@/2!L96YG=&@@)2 T"@D)"6UO=@D)96-X+&5A> H)"0EA M9&0)"65D:2PS"@D)"6%D9 D)97-I+#,*3#$V.@ER97 );6]V&ET"@D)"6-L9 D)"0D)"3L@8VQE87(@9&ER96-T:6]N(&9L M86<*"0D):FUP"0E,.3D)"0D).R!P D)"3L@86YD(&YU;6)E"QE87@)"0D[ M('-A=F4@;&5N9W1H"@D)"7-H<@D)96-X+#()"0D[(&QE;F=T:" O/2 T"@H) M"7)E< EM;W9S9 D)"0D).R!M;W9E(&1O=6)L92!W;W)D&ET"@I,.3DZ"0EP;W ) M"65A> D)"0D[(')E='5R;B!T;PH)"0EP;W )"65S"0D)"3L@7)I9VAT($YO=&EC92 M+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+0HC"B,)0V]P>7)I9VAT(#(P,#$@8GD@42U44%,L(%%44%- 16%R=&A,:6YK M+FYE= HC"B,)4&5R;6ES2!T:&ES(&UO9'5L92!F'!R97-S960@;W(@:6UP M;&EE9"P@87,@=&\@=&AI6]U(&UA:V4@ M96YH86YC=F5M96YT2 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"@HC"4EN8VQU9&5D($AE861E M DC($5#6" ](&QE;F=T: H)"0EP=7-H; DE961I"0D)(PET:&ES(&UU D)(R!I9B@@;&5N9W1H M(#T](# @*0H)"0EJ>@D)3#DY"0D)"2,)(&=E="!O=70*"0D)8VUP; DE961I M+"5E"DL M)65D>",@1418(#T@)F9R;VU;;&5N9W1H70H)"0EC;7!L"25E9&DL)65D> D) M(R!I9B@@=&\@/"!F2!B86-K=V%R9 H)"0ES=&0)"0D) M"0DC('-E="!D:7)E8W1I;VX@9FQA9R!D;W=N"@D)"6%D9 D))65C>"PE961I M"0DC($5$22 ]("9T;UML96YG=&A="@D)"6UO=@D))65D>"PE97-I"0DC($53 M22 ]("9F71E D)(R!C86QC=6QA M=&4@;G5M8F5R(&]F('1R86EL:6YG(&)Y=&5S"@D)"6%N9 D))#,L)65A> H) M"0EC;7 )"25E8W@L)65A> H)"0EJ9V4)"4PQ-@H)"0EX8VAG"25E8W@L)65A M> D)(R!A;F0@;G5M8F5R(&]F(')E;6%I;FEN9R!B>71E H)"7)E< EM;W9S8@H*(R!C;W!Y(&1O=6)L92!W;W)D D)(R!R97-T;W)E(&QE;F=T: H)"0ES:')L"25E8W@) M"0DC(&QE;F=T:" O/2 T"@D)"7-H H)"0ES=6()"20S+"5E9&D* M"0D)71E"!M=7-T(#T@=&\*"@HC(&-O<'D@9F]R M=V%R9 H)"0DN86QI9VX@"30*3#(P.@D);6]V; DE961I+"5E87@)"2,@8V%L M8W5L871E(&YU;6)E71E&-H9PDE M96%X+"5E8W@)"2,@86YD(&YU;6)E2!O9&0@;&5A9&EN9R!B>71E71E"@HC(&-O M<'D@9&]U8FQE('=O"PE96-X"0DC(')E D)"2,@;&5N9W1H("\](#0*"0D)&ET"@I, M.3DZ"0EP;W!L"25E87@)"0DC(')E='5R;B!T;PH)"0EP;W )"25E