From 233370ff3da98c2037f4648d68b72b3b9f776032 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 8 Nov 2011 14:36:59 +0800 Subject: [PATCH] Kernel - Debugging memcpy use, cut down on some in drvutil --- Kernel/arch/x86/lib.c | 1 + Kernel/drvutil.c | 3 +++ 2 files changed, 4 insertions(+) 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 -- ) { -- 2.20.1