Messages in this thread | | | Date | Sat, 24 Nov 2007 14:34:41 +0100 | From | Pierre Ossman <> | Subject | Re: [RFC] Documentation about unaligned memory access |
| |
On Fri, 23 Nov 2007 00:15:53 +0000 (GMT) Daniel Drake <dsd@gentoo.org> wrote:
> Being spoilt by the luxuries of i386/x86_64 I've never really had a good > grasp on unaligned memory access problems on other architectures and decided > it was time to figure it out. As a result I've written this documentation > which I plan to submit for inclusion as > Documentation/unaligned_memory_access.txt > > Before I do so, any comments on the following? >
A very nice, and much needed document. I think you should include one thing though:
memcpy() is _only_ safe when one of the pointers is char* or void*. If it is anything more complex than that, gcc will assume alignment and optimise based on that. E.g. memcpy() of two long:s generates the same assembly as doing an assignment.
(Technically it is no different for char* and void*, but since they have byte alignment, gcc can't really do anything creative.)
Rgds -- -- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org PulseAudio, core developer http://pulseaudio.org rdesktop, core developer http://www.rdesktop.org - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |