Search
Primary links
Please donate to libfreevec to ensure its continuing development! Donations are done via Paypal.
memmove()
markos — Tue, 29/01/2008 - 15:35
Description
According to the man page, memmove() copies n bytes from memory area src to memory area dest. The memory areas may overlap: copying takes place as though the bytes in src are first copied into a temporary array that does not overlap src or dest, and the bytes are then copied from the temporary array to dest. It returns a pointer to dest.
Depending on whether the source and dest blocks overlap or not, memmove() behaves the same to memcpy() or a backwards memcpy() (starting the copy from the end of the block to the start). Due to this simple design, it usually is optimised together with memcpy(). libfreevec provides an AltiVec-optimised version.
Each CPU in detail:
And for comparison here is the result of the same benchmark run on an Athlon X2 5000 (2.5Ghz), running 32-bit code:
Results/Comments
The same comments done in memcpy() apply here.