* [ Serge <[EMAIL PROTECTED]> * Sat, 25 May 2002 03:40:53 +0200 ] > That's right, but we still have a call, a ret, and a conditional or > two ;-) By inlining we can get rid of these things (especially if size > is known up-front). Moreover, due to JIT's dynamic nature it's > possible to generate faster code at run-time. For example, the > following (generic) memcpy is faster on pre-Pentium x86s (Intel > syntax): > mov esi, $src > mov ecx, $size > mov edi, $dest > shr ecx,1 > rep movsw > adc cl,cl > rep movsb > > For const size==1 we could just mov al, [src]; mov [dest],al > etc.etc. > BTW, MS JIT uses similar optimizations for cpblk/initblk. > > This is a small optimization of course, something similar to inlining > TLS access, but why not :-) In fact I'm more concerned about possible > incompatibility, if people would rely on memmove-like behaviour for > cpblk in Mono. >
Totally agreed, Serge. _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
