include/SDL_stdinc.h
changeset 2111 874162355be5
parent 2077 8bfba7ec379a
child 2135 0313af081a84
equal deleted inserted replaced
2110:21942f552734 2111:874162355be5
   277 extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
   277 extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
   278 #endif
   278 #endif
   279 #define SDL_zero(x)	SDL_memset(&(x), 0, sizeof((x)))
   279 #define SDL_zero(x)	SDL_memset(&(x), 0, sizeof((x)))
   280 #define SDL_zerop(x)	SDL_memset((x), 0, sizeof(*(x)))
   280 #define SDL_zerop(x)	SDL_memset((x), 0, sizeof(*(x)))
   281 
   281 
   282 #if defined(__GNUC__) && defined(i386)
   282 /* We can count on memset existing on Mac OS X and being well-tuned. */
       
   283 #if defined(__MACH__) && defined(__APPLE__)
       
   284 #define SDL_memset4(dst, val, len) memset(dst, val, (len)*4)
       
   285 #elif defined(__GNUC__) && defined(i386)
   283 #define SDL_memset4(dst, val, len)				\
   286 #define SDL_memset4(dst, val, len)				\
   284 do {								\
   287 do {								\
   285 	int u0, u1, u2;						\
   288 	int u0, u1, u2;						\
   286 	__asm__ __volatile__ (					\
   289 	__asm__ __volatile__ (					\
   287 		"cld\n\t"					\
   290 		"cld\n\t"					\
   306 		} while ( --_n );		\
   309 		} while ( --_n );		\
   307 	}					\
   310 	}					\
   308 } while(0)
   311 } while(0)
   309 #endif
   312 #endif
   310 
   313 
   311 #if defined(__GNUC__) && defined(i386)
   314 /* We can count on memcpy existing on Mac OS X and being well-tuned. */
       
   315 #if defined(__MACH__) && defined(__APPLE__)
       
   316 #define SDL_memcpy(dst, src, len) memcpy(dst, src, len)
       
   317 #elif defined(__GNUC__) && defined(i386)
   312 #define SDL_memcpy(dst, src, len)					  \
   318 #define SDL_memcpy(dst, src, len)					  \
   313 do {									  \
   319 do {									  \
   314 	int u0, u1, u2;						  	  \
   320 	int u0, u1, u2;						  	  \
   315 	__asm__ __volatile__ (						  \
   321 	__asm__ __volatile__ (						  \
   316 		"cld\n\t"						  \
   322 		"cld\n\t"						  \
   336 extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src,
   342 extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src,
   337                                          size_t len);
   343                                          size_t len);
   338 #endif
   344 #endif
   339 #endif
   345 #endif
   340 
   346 
   341 #if defined(__GNUC__) && defined(i386)
   347 /* We can count on memcpy existing on Mac OS X and being well-tuned. */
       
   348 #if defined(__MACH__) && defined(__APPLE__)
       
   349 #define SDL_memcpy4(dst, src, len) memcpy(dst, src, (len)*4)
       
   350 #elif defined(__GNUC__) && defined(i386)
   342 #define SDL_memcpy4(dst, src, len)				\
   351 #define SDL_memcpy4(dst, src, len)				\
   343 do {								\
   352 do {								\
   344 	int ecx, edi, esi;					\
   353 	int ecx, edi, esi;					\
   345 	__asm__ __volatile__ (					\
   354 	__asm__ __volatile__ (					\
   346 		"cld\n\t"					\
   355 		"cld\n\t"					\