fix non-align bug in the mem_cpy

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2239 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
goprife@gmail.com 2012-07-30 13:39:11 +00:00
parent 03de4f8a48
commit 0919b8dab1
1 changed files with 8 additions and 1 deletions

View File

@ -522,7 +522,14 @@ void mem_cpy (void* dst, const void* src, UINT cnt) {
BYTE *d = (BYTE*)dst;
const BYTE *s = (const BYTE*)src;
#if _WORD_ACCESS == 1
#if _WORD_ACCESS == 1
if (((unsigned)d & 0x03)!=0 || ((unsigned)s & 0x03)!=0)
{
while (cnt--)
*d++ = *s++;
return;
}
while (cnt >= sizeof(int)) {
*(int*)d = *(int*)s;
d += sizeof(int); s += sizeof(int);