/[pcsx2_0.9.7]/trunk/common/include/Utilities/MemcpyFast.h
ViewVC logotype

Diff of /trunk/common/include/Utilities/MemcpyFast.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- trunk/common/include/Utilities/MemcpyFast.h	2010/09/07 03:24:11	31
+++ trunk/common/include/Utilities/MemcpyFast.h	2010/09/07 11:08:22	62
@@ -22,12 +22,14 @@
 	extern "C" void __fastcall memcpy_amd_(void *dest, const void *src, size_t bytes);
 	extern "C" u8 memcmp_mmx(const void* src1, const void* src2, int cmpsize);
 	extern "C" void memxor_mmx(void* dst, const void* src1, int cmpsize);
+	extern void memcpy_amd_qwc(void *dest, const void *src, size_t bytes);
 
 #else
 
 #	include "win_memzero.h"
 
 	extern void __fastcall memcpy_amd_(void *dest, const void *src, size_t bytes);
+	extern void memcpy_amd_qwc(void *dest, const void *src, size_t bytes);
 	extern u8 memcmp_mmx(const void* src1, const void* src2, int cmpsize);
 	extern void memxor_mmx(void* dst, const void* src1, int cmpsize);
 
@@ -36,7 +38,16 @@
 // Only used in the Windows version of memzero.h. But it's in Misc.cpp for some reason.
 void _memset16_unaligned( void* dest, u16 data, size_t size );
 
-#define memcpy_fast		memcpy_amd_ // Fast memcpy
-#define memcpy_aligned	memcpy_amd_	// Memcpy with 16-byte Aligned addresses
-#define memcpy_const	memcpy_amd_	// Memcpy with constant size
-#define memcpy_constA	memcpy_amd_ // Memcpy with constant size and 16-byte aligned
+// MemcpyVibes.cpp functions
+extern void memcpy_vibes(void * dest, const void * src, int size);
+extern void gen_memcpy_vibes();
+
+#define memcpy_fast				memcpy_amd_  // Fast memcpy
+#define memcpy_aligned(d,s,c)	memcpy_amd_(d,s,c)	// Memcpy with 16-byte Aligned addresses
+#define memcpy_const			memcpy_amd_	 // Memcpy with constant size
+#define memcpy_constA			memcpy_amd_  // Memcpy with constant size and 16-byte aligned
+#define memcpy_qwc_				memcpy_vibes // Memcpy in aligned qwc increments, with 0x400 qwc or less
+#define memcpy_qwc(d,s,c)		memcpy_amd_qwc(d,s,c)
+
+// Useful alternative if we think memcpy_amd_qwc is buggy
+//#define memcpy_qwc(d,s,c)		memcpy_amd_(d,s,c*16)

 

  ViewVC Help
Powered by ViewVC 1.1.22