Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!uupsi!sunic!dkuug!diku!basker From: basker@diku.dk (Tom Thuneby) Newsgroups: comp.compression Subject: Re: Fast 68000 copy routine. Keywords: fast 68000 block memory move copy routine reinventing the wheel Message-ID: <1991Jun20.213722.3212@odin.diku.dk> Date: 20 Jun 91 21:37:22 GMT References: <854@spam.ua.oz> Sender: basker@freja.diku.dk Organization: Department of Computer Science, U of Copenhagen Lines: 25 ross@spam.ua.oz.au (Ross Williams) writes: >>How is your code better than the other 97 implementations of >>"fast block copy"? It's been about 10 years since the idea of >>using MOVEM.L in an unrolled loop was invented; have you compared >>your implementation to the standard routines? I'm not a skilled M68000 programmer, but anyway: If you are only considering MC68000, then read no further. Otherwise: I believe the MC68010 (and possibly '20 & up) have a special 'loop-mode' for these cases: when an one-word move instruction is followed by a decrement-and-branch instruction (branching to the move), the MC68010 will enter loop-mode. No instructions are fetched; only data transfers take place. The instructions are still executed, but they reside in the decode register and the prefetch queue, and the processor only has to fetch them twice (not once, don't ask me why). I don't have the instruction timings here, but it might outdo the MOVEM.L routines, especially on smallish blocks. This is probably not the appropriate group for this, so please mail me any follow-ups (I probably don't subscribe to an appropriate group :). Tom Thuneby (basker@diku.dk)