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));
122 !((
uintptr_t) src & 15) && !(srcskip & 15) &&
123 !((
uintptr_t) dst & 15) && !(dstskip & 15)) {
125 SDL_memcpySSE(dst, src, w);
134 if (
SDL_HasMMX() && !(srcskip & 7) && !(dstskip & 7)) {
136 SDL_memcpyMMX(dst, src, w);
GLfloat GLfloat GLfloat GLfloat h
DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void)
DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void)
DECLSPEC void *SDLCALL SDL_memmove(void *dst, const void *src, size_t len)
void SDL_BlitCopy(SDL_BlitInfo *info)
SDL_PixelFormat * dst_fmt
DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, size_t len)
uint8_t Uint8
An unsigned 8-bit integer type.
GLint GLint GLint GLint GLint w
GLint GLsizei const GLuint64 * values