actually use the sse routines!

SVN revision: 19955
This commit is contained in:
Carsten Haitzler 2006-01-22 06:54:18 +00:00
parent ea9bfd7103
commit 1adf40fbb5
2 changed files with 43 additions and 24 deletions

View File

@ -276,7 +276,25 @@ evas_common_copy_pixels_rgba_to_rgba_mmx2(DATA32 *src, DATA32 *dst, int len)
void
evas_common_copy_pixels_rgba_to_rgba_sse(DATA32 *src, DATA32 *dst, int len)
{
DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre;
DATA32 *src_ptr, *dst_ptr, *dst_end_ptr;
dst_end_ptr = dst + len;
dst_end_ptr -= 15;
src_ptr = src;
dst_ptr = dst;
while (dst_ptr < dst_end_ptr)
{
MOVE_16DWORDS_MMX2(src_ptr, dst_ptr);
src_ptr+=16;
dst_ptr+=16;
}
while (dst_ptr < dst_end_ptr)
{
*dst_ptr = *src_ptr;
src_ptr++;
dst_ptr++;
}
#if 0
#ifdef ALIGN_FIX
int src_align;
int dst_align;
@ -321,6 +339,7 @@ evas_common_copy_pixels_rgba_to_rgba_sse(DATA32 *src, DATA32 *dst, int len)
src_ptr++;
dst_ptr++;
}
#endif
}
#endif

View File

@ -612,22 +612,22 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
}
else
{
#if 1
#if 0
# ifdef BUILD_MMX
# ifdef BUILD_C
# ifdef BUILD_C
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
# endif
# endif
return evas_common_copy_pixels_rgba_to_rgba_mmx2;
# ifdef BUILD_SSE
# ifdef BUILD_SSE
else
# endif
# endif
#endif
#ifdef BUILD_SSE
# ifdef BUILD_C
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 64 * 64))
# endif
return evas_common_copy_pixels_rgba_to_rgba_sse;
# ifdef BUILD_SSE
# ifdef BUILD_C
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE))
# endif
return evas_common_copy_pixels_rgba_to_rgba_sse;
# ifdef BUILD_MMX
else
# endif
@ -648,28 +648,28 @@ evas_common_draw_func_blend_get(RGBA_Image *src, RGBA_Image *dst, int pixels)
#else
# ifdef BUILD_SSE
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE) && (pixels > 256 * 256))
if (evas_common_cpu_has_feature(CPU_FEATURE_SSE))
return evas_common_copy_pixels_rgba_to_rgba_sse;
# ifdef BUILD_MMX
else
# endif
# endif
# ifdef BUILD_MMX
else
# endif
#endif
#ifdef BUILD_MMX
# ifdef BUILD_C
# ifdef BUILD_C
if (evas_common_cpu_has_feature(CPU_FEATURE_MMX2))
# endif
# endif
return evas_common_copy_pixels_rgba_to_rgba_mmx2;
# ifdef BUILD_C
# ifdef BUILD_C
else if (evas_common_cpu_has_feature(CPU_FEATURE_MMX))
# endif
# endif
return evas_common_copy_pixels_rgba_to_rgba_mmx;
# ifdef BUILD_C
# ifdef BUILD_C
else
# endif
# endif
#endif
#ifdef BUILD_C
# ifdef BUILD_C
return evas_common_copy_pixels_rgba_to_rgba_c;
#endif
# endif
#endif
}