21 #include "../SDL_internal.h" 36 for (i = len / 64; i--;) {
37 _mm_prefetch(src, _MM_HINT_NTA);
38 values[0] = *(__m128 *) (src + 0);
39 values[1] = *(__m128 *) (src + 16);
40 values[2] = *(__m128 *) (src + 32);
41 values[3] = *(__m128 *) (src + 48);
42 _mm_stream_ps((
float *) (dst + 0), values[0]);
43 _mm_stream_ps((
float *) (dst + 16), values[1]);
44 _mm_stream_ps((
float *) (dst + 32), values[2]);
45 _mm_stream_ps((
float *) (dst + 48), values[3]);
57 #pragma warning(disable:4799) 60 SDL_memcpyMMX(
Uint8 * dst,
const Uint8 * src,
int len)
62 const int remain = (len & 63);
65 __m64* d64 = (__m64*)dst;
66 __m64* s64 = (__m64*)src;
68 for(i= len / 64; i--;) {
84 const int skip = len - remain;
107 overlap = (dst < (src + h*srcskip));
109 overlap = (src < (dst + h*dstskip));
119 src += ((h-1) * srcskip);
120 dst += ((h-1) * dstskip);
132 !((
uintptr_t) src & 15) && !(srcskip & 15) &&
133 !((
uintptr_t) dst & 15) && !(dstskip & 15)) {
135 SDL_memcpySSE(dst, src, w);
144 if (
SDL_HasMMX() && !(srcskip & 7) && !(dstskip & 7)) {
146 SDL_memcpyMMX(dst, src, w);
GLfloat GLfloat GLfloat GLfloat h
GLenum GLsizei GLsizei GLint * values
void SDL_BlitCopy(SDL_BlitInfo *info)
GLubyte GLubyte GLubyte GLubyte w
SDL_PixelFormat * dst_fmt
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)