From: John Hodge Date: Tue, 8 Nov 2011 06:36:59 +0000 (+0800) Subject: Kernel - Debugging memcpy use, cut down on some in drvutil X-Git-Tag: rel0.14~132 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=233370ff3da98c2037f4648d68b72b3b9f776032;p=tpg%2Facess2.git Kernel - Debugging memcpy use, cut down on some in drvutil --- diff --git a/Kernel/arch/x86/lib.c b/Kernel/arch/x86/lib.c index 8f8abe67..9dc631d0 100644 --- a/Kernel/arch/x86/lib.c +++ b/Kernel/arch/x86/lib.c @@ -324,6 +324,7 @@ int memcmp(const void *m1, const void *m2, size_t Num) */ void *memcpy(void *Dest, const void *Src, size_t Num) { +// Debug("\nmemcpy:Num=0x%x by %p", Num, __builtin_return_address(0)); if( ((Uint)Dest & 3) || ((Uint)Src & 3) ) __asm__ __volatile__ ("rep movsb" :: "D" (Dest), "S" (Src), "c" (Num)); else { diff --git a/Kernel/drvutil.c b/Kernel/drvutil.c index 9d1590b4..00ab5ced 100644 --- a/Kernel/drvutil.c +++ b/Kernel/drvutil.c @@ -539,6 +539,9 @@ void DrvUtil_Video_2D_Blit(void *Ent, Uint16 DstX, Uint16 DstY, Uint16 SrcX, Uin } } } + else if(W == FBInfo->Width && FBInfo->Pitch == FBInfo->Width*bytes_per_px) { + memmove((Uint8*)FBInfo->Framebuffer + dst, (Uint8*)FBInfo->Framebuffer + src, H*FBInfo->Pitch); + } else { // Normal copy is OK while( H -- ) {