580 lines
16 KiB
Diff
580 lines
16 KiB
Diff
*** a/include/SDL_config.h Mon Dec 31 06:17:05 2007
|
||
--- b/include/SDL_config.h Thu Apr 18 02:32:56 2019
|
||
***************
|
||
*** 1,3 ****
|
||
--- 1,4 ----
|
||
+ /* include/SDL_config.h. Generated from SDL_config.h.in by configure. */
|
||
/*
|
||
SDL - Simple DirectMedia Layer
|
||
Copyright (C) 1997-2006 Sam Lantinga
|
||
***************
|
||
*** 23,45 ****
|
||
#ifndef _SDL_config_h
|
||
#define _SDL_config_h
|
||
|
||
#include "SDL_platform.h"
|
||
|
||
! /* Add any platform that doesn't build using the configure system */
|
||
! #if defined(__DREAMCAST__)
|
||
! #include "SDL_config_dreamcast.h"
|
||
! #elif defined(__MACOS__)
|
||
! #include "SDL_config_macos.h"
|
||
! #elif defined(__MACOSX__)
|
||
! #include "SDL_config_macosx.h"
|
||
! #elif defined(__SYMBIAN32__)
|
||
! #include "SDL_config_symbian.h" /* must be before win32! */
|
||
! #elif defined(__WIN32__)
|
||
! #include "SDL_config_win32.h"
|
||
! #elif defined(__OS2__)
|
||
! #include "SDL_config_os2.h"
|
||
#else
|
||
! #include "SDL_config_minimal.h"
|
||
! #endif /* platform config */
|
||
|
||
#endif /* _SDL_config_h */
|
||
--- 24,307 ----
|
||
#ifndef _SDL_config_h
|
||
#define _SDL_config_h
|
||
|
||
+ /* This is a set of defines to configure the SDL features */
|
||
+
|
||
+ /* General platform specific identifiers */
|
||
#include "SDL_platform.h"
|
||
|
||
! /* Make sure that this isn't included by Visual C++ */
|
||
! #ifdef _MSC_VER
|
||
! #error You should copy include/SDL_config.h.default to include/SDL_config.h
|
||
! #endif
|
||
!
|
||
! /* C language features */
|
||
! /* #undef const */
|
||
! /* #undef inline */
|
||
! /* #undef volatile */
|
||
!
|
||
! /* C datatypes */
|
||
! /* #undef size_t */
|
||
! /* #undef int8_t */
|
||
! /* #undef uint8_t */
|
||
! /* #undef int16_t */
|
||
! /* #undef uint16_t */
|
||
! /* #undef int32_t */
|
||
! /* #undef uint32_t */
|
||
! /* #undef int64_t */
|
||
! /* #undef uint64_t */
|
||
! /* #undef uintptr_t */
|
||
! #define SDL_HAS_64BIT_TYPE 1
|
||
!
|
||
! /* Endianness */
|
||
! #define SDL_BYTEORDER 1234
|
||
!
|
||
! /* Comment this if you want to build without any C library requirements */
|
||
! #define HAVE_LIBC 1
|
||
! #if HAVE_LIBC
|
||
!
|
||
! /* Useful headers */
|
||
! #define HAVE_ALLOCA_H 1
|
||
! #define HAVE_SYS_TYPES_H 1
|
||
! #define HAVE_STDIO_H 1
|
||
! #define STDC_HEADERS 1
|
||
! #define HAVE_STDLIB_H 1
|
||
! #define HAVE_STDARG_H 1
|
||
! #define HAVE_MALLOC_H 1
|
||
! #define HAVE_MEMORY_H 1
|
||
! #define HAVE_STRING_H 1
|
||
! #define HAVE_STRINGS_H 1
|
||
! #define HAVE_INTTYPES_H 1
|
||
! #define HAVE_STDINT_H 1
|
||
! #define HAVE_CTYPE_H 1
|
||
! #define HAVE_MATH_H 1
|
||
! #define HAVE_ICONV_H 1
|
||
! #define HAVE_SIGNAL_H 1
|
||
! /* #undef HAVE_ALTIVEC_H */
|
||
!
|
||
! /* C library functions */
|
||
! #define HAVE_MALLOC 1
|
||
! #define HAVE_CALLOC 1
|
||
! #define HAVE_REALLOC 1
|
||
! #define HAVE_FREE 1
|
||
! #define HAVE_ALLOCA 1
|
||
! #ifndef _WIN32 /* Don't use C runtime versions of these on Windows */
|
||
! #define HAVE_GETENV 1
|
||
! #define HAVE_PUTENV 1
|
||
! #define HAVE_UNSETENV 1
|
||
! #endif
|
||
! #define HAVE_QSORT 1
|
||
! #define HAVE_ABS 1
|
||
! #define HAVE_BCOPY 1
|
||
! #define HAVE_MEMSET 1
|
||
! #define HAVE_MEMCPY 1
|
||
! #define HAVE_MEMMOVE 1
|
||
! /* #undef HAVE_MEMCMP */
|
||
! #define HAVE_STRLEN 1
|
||
! /* #undef HAVE_STRLCPY */
|
||
! /* #undef HAVE_STRLCAT */
|
||
! #define HAVE_STRDUP 1
|
||
! /* #undef HAVE__STRREV */
|
||
! /* #undef HAVE__STRUPR */
|
||
! /* #undef HAVE__STRLWR */
|
||
! /* #undef HAVE_INDEX */
|
||
! /* #undef HAVE_RINDEX */
|
||
! #define HAVE_STRCHR 1
|
||
! #define HAVE_STRRCHR 1
|
||
! #define HAVE_STRSTR 1
|
||
! /* #undef HAVE_ITOA */
|
||
! /* #undef HAVE__LTOA */
|
||
! /* #undef HAVE__UITOA */
|
||
! /* #undef HAVE__ULTOA */
|
||
! #define HAVE_STRTOL 1
|
||
! #define HAVE_STRTOUL 1
|
||
! /* #undef HAVE__I64TOA */
|
||
! /* #undef HAVE__UI64TOA */
|
||
! #define HAVE_STRTOLL 1
|
||
! #define HAVE_STRTOULL 1
|
||
! #define HAVE_STRTOD 1
|
||
! #define HAVE_ATOI 1
|
||
! #define HAVE_ATOF 1
|
||
! #define HAVE_STRCMP 1
|
||
! #define HAVE_STRNCMP 1
|
||
! /* #undef HAVE__STRICMP */
|
||
! #define HAVE_STRCASECMP 1
|
||
! /* #undef HAVE__STRNICMP */
|
||
! #define HAVE_STRNCASECMP 1
|
||
! #define HAVE_SSCANF 1
|
||
! #define HAVE_SNPRINTF 1
|
||
! #define HAVE_VSNPRINTF 1
|
||
! #define HAVE_ICONV 1
|
||
! #define HAVE_SIGACTION 1
|
||
! #define HAVE_SETJMP 1
|
||
! #define HAVE_NANOSLEEP 1
|
||
! /* #undef HAVE_CLOCK_GETTIME */
|
||
! #define HAVE_DLVSYM 1
|
||
! #define HAVE_GETPAGESIZE 1
|
||
! #define HAVE_MPROTECT 1
|
||
!
|
||
#else
|
||
! /* We may need some replacement for stdarg.h here */
|
||
! #include <stdarg.h>
|
||
! #endif /* HAVE_LIBC */
|
||
!
|
||
! /* Allow disabling of core subsystems */
|
||
! /* #undef SDL_AUDIO_DISABLED */
|
||
! /* #undef SDL_CDROM_DISABLED */
|
||
! /* #undef SDL_CPUINFO_DISABLED */
|
||
! /* #undef SDL_EVENTS_DISABLED */
|
||
! /* #undef SDL_FILE_DISABLED */
|
||
! /* #undef SDL_JOYSTICK_DISABLED */
|
||
! /* #undef SDL_LOADSO_DISABLED */
|
||
! /* #undef SDL_THREADS_DISABLED */
|
||
! /* #undef SDL_TIMERS_DISABLED */
|
||
! /* #undef SDL_VIDEO_DISABLED */
|
||
!
|
||
! /* Enable various audio drivers */
|
||
! /* #undef SDL_AUDIO_DRIVER_ALSA */
|
||
! /* #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC */
|
||
! /* #undef SDL_AUDIO_DRIVER_ARTS */
|
||
! /* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
|
||
! /* #undef SDL_AUDIO_DRIVER_BAUDIO */
|
||
! /* #undef SDL_AUDIO_DRIVER_BSD */
|
||
! /* #undef SDL_AUDIO_DRIVER_COREAUDIO */
|
||
! /* #undef SDL_AUDIO_DRIVER_DART */
|
||
! /* #undef SDL_AUDIO_DRIVER_DC */
|
||
! #define SDL_AUDIO_DRIVER_DISK 1
|
||
! #define SDL_AUDIO_DRIVER_DUMMY 1
|
||
! /* #undef SDL_AUDIO_DRIVER_DMEDIA */
|
||
! /* #undef SDL_AUDIO_DRIVER_DSOUND */
|
||
! /* #undef SDL_AUDIO_DRIVER_PULSE */
|
||
! /* #undef SDL_AUDIO_DRIVER_PULSE_DYNAMIC */
|
||
! /* #undef SDL_AUDIO_DRIVER_ESD */
|
||
! /* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */
|
||
! /* #undef SDL_AUDIO_DRIVER_MINT */
|
||
! /* #undef SDL_AUDIO_DRIVER_MMEAUDIO */
|
||
! /* #undef SDL_AUDIO_DRIVER_NAS */
|
||
! #define SDL_AUDIO_DRIVER_OSS 1
|
||
! /* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */
|
||
! /* #undef SDL_AUDIO_DRIVER_PAUD */
|
||
! /* #undef SDL_AUDIO_DRIVER_QNXNTO */
|
||
! /* #undef SDL_AUDIO_DRIVER_SNDMGR */
|
||
! /* #undef SDL_AUDIO_DRIVER_SUNAUDIO */
|
||
! /* #undef SDL_AUDIO_DRIVER_WAVEOUT */
|
||
!
|
||
! /* Enable various cdrom drivers */
|
||
! /* #undef SDL_CDROM_AIX */
|
||
! /* #undef SDL_CDROM_BEOS */
|
||
! /* #undef SDL_CDROM_BSDI */
|
||
! /* #undef SDL_CDROM_DC */
|
||
! /* #undef SDL_CDROM_DUMMY */
|
||
! /* #undef SDL_CDROM_FREEBSD */
|
||
! #define SDL_CDROM_LINUX 1
|
||
! /* #undef SDL_CDROM_MACOS */
|
||
! /* #undef SDL_CDROM_MACOSX */
|
||
! /* #undef SDL_CDROM_MINT */
|
||
! /* #undef SDL_CDROM_OPENBSD */
|
||
! /* #undef SDL_CDROM_OS2 */
|
||
! /* #undef SDL_CDROM_OSF */
|
||
! /* #undef SDL_CDROM_QNX */
|
||
! /* #undef SDL_CDROM_WIN32 */
|
||
!
|
||
! /* Enable various input drivers */
|
||
! #define SDL_INPUT_LINUXEV 1
|
||
! /* #undef SDL_INPUT_TSLIB */
|
||
! /* #undef SDL_JOYSTICK_BEOS */
|
||
! /* #undef SDL_JOYSTICK_DC */
|
||
! /* #undef SDL_JOYSTICK_DUMMY */
|
||
! /* #undef SDL_JOYSTICK_IOKIT */
|
||
! #define SDL_JOYSTICK_LINUX 1
|
||
! /* #undef SDL_JOYSTICK_MACOS */
|
||
! /* #undef SDL_JOYSTICK_MINT */
|
||
! /* #undef SDL_JOYSTICK_OS2 */
|
||
! /* #undef SDL_JOYSTICK_RISCOS */
|
||
! /* #undef SDL_JOYSTICK_WINMM */
|
||
! /* #undef SDL_JOYSTICK_USBHID */
|
||
! /* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */
|
||
!
|
||
! /* Enable various shared object loading systems */
|
||
! /* #undef SDL_LOADSO_BEOS */
|
||
! /* #undef SDL_LOADSO_DLCOMPAT */
|
||
! #define SDL_LOADSO_DLOPEN 1
|
||
! /* #undef SDL_LOADSO_DUMMY */
|
||
! /* #undef SDL_LOADSO_LDG */
|
||
! /* #undef SDL_LOADSO_MACOS */
|
||
! /* #undef SDL_LOADSO_OS2 */
|
||
! /* #undef SDL_LOADSO_WIN32 */
|
||
!
|
||
! /* Enable various threading systems */
|
||
! /* #undef SDL_THREAD_BEOS */
|
||
! /* #undef SDL_THREAD_DC */
|
||
! /* #undef SDL_THREAD_OS2 */
|
||
! /* #undef SDL_THREAD_PTH */
|
||
! #define SDL_THREAD_PTHREAD 1
|
||
! #define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
|
||
! /* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */
|
||
! /* #undef SDL_THREAD_SPROC */
|
||
! /* #undef SDL_THREAD_WIN32 */
|
||
!
|
||
! /* Enable various timer systems */
|
||
! /* #undef SDL_TIMER_BEOS */
|
||
! /* #undef SDL_TIMER_DC */
|
||
! /* #undef SDL_TIMER_DUMMY */
|
||
! /* #undef SDL_TIMER_MACOS */
|
||
! /* #undef SDL_TIMER_MINT */
|
||
! /* #undef SDL_TIMER_OS2 */
|
||
! /* #undef SDL_TIMER_RISCOS */
|
||
! #define SDL_TIMER_UNIX 1
|
||
! /* #undef SDL_TIMER_WIN32 */
|
||
! /* #undef SDL_TIMER_WINCE */
|
||
!
|
||
! /* Enable various video drivers */
|
||
! /* #undef SDL_VIDEO_DRIVER_AALIB */
|
||
! /* #undef SDL_VIDEO_DRIVER_BWINDOW */
|
||
! /* #undef SDL_VIDEO_DRIVER_DC */
|
||
! /* #undef SDL_VIDEO_DRIVER_DDRAW */
|
||
! #define SDL_VIDEO_DRIVER_DGA 1
|
||
! /* #undef SDL_VIDEO_DRIVER_DIRECTFB */
|
||
! /* #undef SDL_VIDEO_DRIVER_DRAWSPROCKET */
|
||
! #define SDL_VIDEO_DRIVER_DUMMY 1
|
||
! #define SDL_VIDEO_DRIVER_FBCON 1
|
||
! /* #undef SDL_VIDEO_DRIVER_GAPI */
|
||
! /* #undef SDL_VIDEO_DRIVER_GEM */
|
||
! /* #undef SDL_VIDEO_DRIVER_GGI */
|
||
! /* #undef SDL_VIDEO_DRIVER_IPOD */
|
||
! /* #undef SDL_VIDEO_DRIVER_NANOX */
|
||
! /* #undef SDL_VIDEO_DRIVER_OS2FS */
|
||
! /* #undef SDL_VIDEO_DRIVER_PHOTON */
|
||
! /* #undef SDL_VIDEO_DRIVER_PICOGUI */
|
||
! /* #undef SDL_VIDEO_DRIVER_PS2GS */
|
||
! /* #undef SDL_VIDEO_DRIVER_QTOPIA */
|
||
! /* #undef SDL_VIDEO_DRIVER_QUARTZ */
|
||
! /* #undef SDL_VIDEO_DRIVER_RISCOS */
|
||
! /* #undef SDL_VIDEO_DRIVER_SVGALIB */
|
||
! /* #undef SDL_VIDEO_DRIVER_TOOLBOX */
|
||
! /* #undef SDL_VIDEO_DRIVER_VGL */
|
||
! /* #undef SDL_VIDEO_DRIVER_WINDIB */
|
||
! /* #undef SDL_VIDEO_DRIVER_WSCONS */
|
||
! #define SDL_VIDEO_DRIVER_X11 1
|
||
! #define SDL_VIDEO_DRIVER_X11_DGAMOUSE 1
|
||
! #define SDL_VIDEO_DRIVER_X11_DPMS 1
|
||
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */
|
||
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT */
|
||
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR */
|
||
! /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER */
|
||
! #define SDL_VIDEO_DRIVER_X11_VIDMODE 1
|
||
! #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
|
||
! #define SDL_VIDEO_DRIVER_X11_XME 1
|
||
! #define SDL_VIDEO_DRIVER_X11_XRANDR 1
|
||
! #define SDL_VIDEO_DRIVER_X11_XV 1
|
||
! /* #undef SDL_VIDEO_DRIVER_XBIOS */
|
||
!
|
||
! /* Enable OpenGL support */
|
||
! #define SDL_VIDEO_OPENGL 1
|
||
! #define SDL_VIDEO_OPENGL_GLX 1
|
||
! /* #undef SDL_VIDEO_OPENGL_WGL */
|
||
! /* #undef SDL_VIDEO_OPENGL_OSMESA */
|
||
! /* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
|
||
!
|
||
! /* Enable assembly routines */
|
||
! #define SDL_ASSEMBLY_ROUTINES 1
|
||
! /* #undef SDL_HERMES_BLITTERS */
|
||
! /* #undef SDL_ALTIVEC_BLITTERS */
|
||
|
||
#endif /* _SDL_config_h */
|
||
*** a/src/video/SDL_blit.h Mon Dec 31 04:48:13 2007
|
||
--- b/src/video/SDL_blit.h Thu Apr 18 02:32:56 2019
|
||
***************
|
||
*** 404,410 ****
|
||
|
||
|
||
/* This is a very useful loop for optimizing blitters */
|
||
! #if defined(_MSC_VER) && (_MSC_VER == 1300)
|
||
/* There's a bug in the Visual C++ 7 optimizer when compiling this code */
|
||
#else
|
||
#define USE_DUFFS_LOOP
|
||
--- 404,410 ----
|
||
|
||
|
||
/* This is a very useful loop for optimizing blitters */
|
||
! #if defined(_MSC_VER) && (_MSC_VER == 1300) || defined(__e2k__)
|
||
/* There's a bug in the Visual C++ 7 optimizer when compiling this code */
|
||
#else
|
||
#define USE_DUFFS_LOOP
|
||
***************
|
||
*** 495,500 ****
|
||
--- 495,501 ----
|
||
n--; \
|
||
} \
|
||
n=n>>1; \
|
||
+ _Pragma ("loop count(1000)") \
|
||
for(; n > 0; --n) { \
|
||
double_pixel_copy_increment; \
|
||
} \
|
||
***************
|
||
*** 514,519 ****
|
||
--- 515,521 ----
|
||
n -= 2; \
|
||
} \
|
||
n=n>>2; \
|
||
+ _Pragma ("loop count(1000)") \
|
||
for(; n > 0; --n) { \
|
||
quatro_pixel_copy_increment; \
|
||
} \
|
||
***************
|
||
*** 522,527 ****
|
||
--- 524,530 ----
|
||
/* Don't use Duff's device to unroll loops */
|
||
#define DUFFS_LOOP(pixel_copy_increment, width) \
|
||
{ int n; \
|
||
+ _Pragma ("loop count(1000)") \
|
||
for ( n=width; n > 0; --n ) { \
|
||
pixel_copy_increment; \
|
||
} \
|
||
*** a/src/video/SDL_blit_1.c Mon Dec 31 04:48:14 2007
|
||
--- b/src/video/SDL_blit_1.c Thu Apr 18 02:32:56 2019
|
||
***************
|
||
*** 230,238 ****
|
||
--- 230,243 ----
|
||
}
|
||
static void Blit1to4(SDL_BlitInfo *info)
|
||
{
|
||
+
|
||
+ #if defined(__e2k__)
|
||
+ int i;
|
||
+ #else
|
||
#ifndef USE_DUFFS_LOOP
|
||
int c;
|
||
#endif
|
||
+ #endif
|
||
int width, height;
|
||
Uint8 *src;
|
||
Uint32 *map, *dst;
|
||
***************
|
||
*** 247,252 ****
|
||
--- 252,272 ----
|
||
dstskip = info->d_skip/4;
|
||
map = (Uint32 *)info->table;
|
||
|
||
+ #if defined(__e2k__)
|
||
+
|
||
+ // При сборке библиотеки под e2k компилятор гораздо эффективнее справится с разворотом цикла самостоятельно,
|
||
+ // нежели при оптимизации уже развёрнутой реализации.
|
||
+
|
||
+ #pragma loop count(1000)
|
||
+ while ( height -- ) {
|
||
+ #pragma loop count(1000)
|
||
+ for( i = width; i > 0; i-- ){
|
||
+ *dst++ = map[*src++];
|
||
+ }
|
||
+ src += srcskip;
|
||
+ dst += dstskip;
|
||
+ }
|
||
+ #else
|
||
while ( height-- ) {
|
||
#ifdef USE_DUFFS_LOOP
|
||
DUFFS_LOOP(
|
||
***************
|
||
*** 271,276 ****
|
||
--- 292,298 ----
|
||
src += srcskip;
|
||
dst += dstskip;
|
||
}
|
||
+ #endif /* defined(__e2k__) */
|
||
}
|
||
|
||
static void Blit1to1Key(SDL_BlitInfo *info)
|
||
***************
|
||
*** 388,393 ****
|
||
--- 410,416 ----
|
||
/* Set up some basic variables */
|
||
dstskip /= 4;
|
||
|
||
+ #pragma loop count(1000)
|
||
while ( height-- ) {
|
||
DUFFS_LOOP(
|
||
{
|
||
***************
|
||
*** 459,464 ****
|
||
--- 482,488 ----
|
||
/* Set up some basic variables */
|
||
dstbpp = dstfmt->BytesPerPixel;
|
||
|
||
+ #pragma loop count(1000)
|
||
while ( height-- ) {
|
||
int sR, sG, sB;
|
||
int dR, dG, dB;
|
||
*** a/src/video/SDL_blit_A.c Mon Dec 31 04:48:14 2007
|
||
--- b/src/video/SDL_blit_A.c Thu Apr 18 02:32:56 2019
|
||
***************
|
||
*** 1442,1447 ****
|
||
--- 1442,1448 ----
|
||
Uint32 *dstp = (Uint32 *)info->d_pixels;
|
||
int dstskip = info->d_skip >> 2;
|
||
|
||
+ #pragma loop count(1000)
|
||
while(height--) {
|
||
DUFFS_LOOP4({
|
||
Uint32 s = *srcp++;
|
||
***************
|
||
*** 2691,2696 ****
|
||
--- 2692,2698 ----
|
||
(check all macros!)
|
||
It is unclear whether there is a good general solution that doesn't
|
||
need a branch (or a divide). */
|
||
+ #pragma loop count(1000)
|
||
while ( height-- ) {
|
||
DUFFS_LOOP4(
|
||
{
|
||
*** a/src/video/SDL_surface.c Mon Dec 31 04:48:14 2007
|
||
--- b/src/video/SDL_surface.c Thu Apr 18 02:32:56 2019
|
||
***************
|
||
*** 547,552 ****
|
||
--- 547,578 ----
|
||
return -1;
|
||
}
|
||
|
||
+ #if defined (__e2k__)
|
||
+
|
||
+ // собственная реализация быстрого memset
|
||
+
|
||
+ #define e2k_memset8(dst, val, len) \
|
||
+ do { \
|
||
+ Uint64 _value = (Uint64) val << 32; \
|
||
+ _value |= val; \
|
||
+ Uint32 _n = len; \
|
||
+ Uint32 * _ptr = ( Uint32* ) dst; \
|
||
+ if ( (Uint64) _ptr & 4 ) { \
|
||
+ *_ptr++ = val; \
|
||
+ _n--; \
|
||
+ } \
|
||
+ _Pragma("#pragma loop count(1000)") \
|
||
+ while ( _n >= 2 ) { \
|
||
+ * (Uint64 *) _ptr = _value; \
|
||
+ _ptr += 2; \
|
||
+ _n -= 2; \
|
||
+ } \
|
||
+ if (_n > 0) \
|
||
+ *_ptr = val; \
|
||
+ } while(0) \
|
||
+
|
||
+ #endif
|
||
+
|
||
/*
|
||
* This function performs a fast fill of the given rectangle with 'color'
|
||
*/
|
||
***************
|
||
*** 606,613 ****
|
||
--- 633,645 ----
|
||
x = dstrect->w*dst->format->BytesPerPixel;
|
||
if ( !color && !((uintptr_t)row&3) && !(x&3) && !(dst->pitch&3) ) {
|
||
int n = x >> 2;
|
||
+ #pragma loop count(1000)
|
||
for ( y=dstrect->h; y; --y ) {
|
||
+ #if defined(__e2k__)
|
||
+ e2k_memset8(row, 0, n);
|
||
+ #else
|
||
SDL_memset4(row, 0, n);
|
||
+ #endif
|
||
row += dst->pitch;
|
||
}
|
||
} else {
|
||
***************
|
||
*** 676,681 ****
|
||
--- 708,714 ----
|
||
} else
|
||
#endif /* __powerpc__ */
|
||
{
|
||
+ #pragma loop count(1000)
|
||
for(y = dstrect->h; y; y--) {
|
||
SDL_memset(row, color, x);
|
||
row += dst->pitch;
|
||
***************
|
||
*** 685,690 ****
|
||
--- 718,724 ----
|
||
} else {
|
||
switch (dst->format->BytesPerPixel) {
|
||
case 2:
|
||
+ #pragma loop count(1000)
|
||
for ( y=dstrect->h; y; --y ) {
|
||
Uint16 *pixels = (Uint16 *)row;
|
||
Uint16 c = (Uint16)color;
|
||
***************
|
||
*** 695,701 ****
|
||
--- 729,739 ----
|
||
n--;
|
||
}
|
||
if(n >> 1)
|
||
+ #if defined (__e2k__)
|
||
+ e2k_memset8(pixels, cc, n >> 1);
|
||
+ #else
|
||
SDL_memset4(pixels, cc, n >> 1);
|
||
+ #endif
|
||
if(n & 1)
|
||
pixels[n - 1] = c;
|
||
row += dst->pitch;
|
||
***************
|
||
*** 706,713 ****
|
||
--- 744,753 ----
|
||
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
|
||
color <<= 8;
|
||
#endif
|
||
+ #pragma loop count(1000)
|
||
for ( y=dstrect->h; y; --y ) {
|
||
Uint8 *pixels = row;
|
||
+ #pragma loop count(1000)
|
||
for ( x=dstrect->w; x; --x ) {
|
||
SDL_memcpy(pixels, &color, 3);
|
||
pixels += 3;
|
||
***************
|
||
*** 717,724 ****
|
||
--- 757,769 ----
|
||
break;
|
||
|
||
case 4:
|
||
+ #pragma loop count(1000)
|
||
for(y = dstrect->h; y; --y) {
|
||
+ #if defined (__e2k__)
|
||
+ e2k_memset8(row, color, dstrect->w);
|
||
+ #else
|
||
SDL_memset4(row, color, dstrect->w);
|
||
+ #endif
|
||
row += dst->pitch;
|
||
}
|
||
break;
|