John Slaten's amd64 mmx patch

SVN revision: 14207
This commit is contained in:
Carsten Haitzler 2005-04-15 07:00:40 +00:00
parent 155fb31bab
commit 2bf2708144
5 changed files with 16950 additions and 17 deletions

View File

@ -104,6 +104,8 @@ AC_ARG_ENABLE(mmx,[ --enable-mmx attempt compiling using mmx assembly
[
if test x$enableval = xyes; then
mmx=yes
# Cannot compile with both options enabled
amd64=no
AC_MSG_RESULT(enabling mmx support)
else
mmx=no

View File

@ -75,7 +75,8 @@ asm_rotate.S \
asm_scale.S
AMD64_SRCS = \
amd64_blend.S
amd64_blend.S \
amd64_blend_cmod.S
MMX_OBJS = $(MMX_SRCS:.S=.lo)
AMD64_OBJS = $(AMD64_SRCS:.S=.lo)

16825
src/lib/amd64_blend_cmod.S Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1402,6 +1402,7 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
#define __imlib_amd64_blend_rgb_to_rgba __imlib_amd64_copy_rgb_to_rgba
#define __imlib_CopyRGBToRGBCmod __imlib_CopyRGBAToRGBCmod
#define __imlib_mmx_copy_rgb_to_rgb_cmod __imlib_mmx_copy_rgba_to_rgb_cmod
#define __imlib_amd64_copy_rgb_to_rgb_cmod __imlib_amd64_copy_rgba_to_rgb_cmod
#define __imlib_AddCopyRGBToRGB __imlib_AddCopyRGBAToRGB
#define __imlib_AddBlendRGBToRGB __imlib_AddCopyRGBToRGB
@ -1414,6 +1415,7 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
#define __imlib_amd64_add_blend_rgb_to_rgba __imlib_amd64_add_copy_rgb_to_rgba
#define __imlib_AddCopyRGBToRGBCmod __imlib_AddCopyRGBAToRGBCmod
#define __imlib_mmx_add_copy_rgb_to_rgb_cmod __imlib_mmx_add_copy_rgb_to_rgba_cmod
#define __imlib_amd64_add_copy_rgb_to_rgb_cmod __imlib_amd64_add_copy_rgb_to_rgba_cmod
#define __imlib_SubCopyRGBToRGB __imlib_SubCopyRGBAToRGB
#define __imlib_SubBlendRGBToRGB __imlib_SubCopyRGBToRGB
@ -1427,6 +1429,7 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
#define __imlib_amd64_subtract_blend_rgb_to_rgba __imlib_amd64_subtract_copy_rgb_to_rgba
#define __imlib_SubCopyRGBToRGBCmod __imlib_SubCopyRGBAToRGBCmod
#define __imlib_mmx_subtract_copy_rgb_to_rgb_cmod __imlib_mmx_subtract_copy_rgb_to_rgba_cmod
#define __imlib_amd64_subtract_copy_rgb_to_rgb_cmod __imlib_amd64_subtract_copy_rgb_to_rgba_cmod
#define __imlib_ReCopyRGBToRGB __imlib_ReCopyRGBAToRGB
#define __imlib_ReBlendRGBToRGB __imlib_ReCopyRGBToRGB
@ -1440,6 +1443,7 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
#define __imlib_amd64_reshade_blend_rgb_to_rgba __imlib_amd64_reshade_copy_rgb_to_rgba
#define __imlib_ReCopyRGBToRGBCmod __imlib_ReCopyRGBAToRGBCmod
#define __imlib_mmx_reshade_copy_rgb_to_rgb_cmod __imlib_mmx_reshade_copy_rgb_to_rgba_cmod
#define __imlib_amd64_reshade_copy_rgb_to_rgb_cmod __imlib_amd64_reshade_copy_rgb_to_rgba_cmod
ImlibBlendFunction
@ -1570,10 +1574,14 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
{{__imlib_amd64_copy_rgba_to_rgba, __imlib_amd64_blend_rgba_to_rgba },
{__imlib_amd64_copy_rgb_to_rgba, __imlib_amd64_blend_rgb_to_rgba}}},
{{{__imlib_CopyRGBAToRGBCmod, __imlib_BlendRGBAToRGBCmod},
{__imlib_CopyRGBToRGBCmod, __imlib_BlendRGBToRGBCmod}},
{{__imlib_CopyRGBAToRGBACmod, __imlib_BlendRGBAToRGBACmod},
{__imlib_CopyRGBToRGBACmod, __imlib_BlendRGBToRGBACmod}}}},
{{{__imlib_amd64_copy_rgba_to_rgb_cmod,
__imlib_amd64_blend_rgba_to_rgb_cmod},
{__imlib_amd64_copy_rgb_to_rgb_cmod,
__imlib_amd64_blend_rgb_to_rgb_cmod}},
{{__imlib_amd64_copy_rgba_to_rgba_cmod,
__imlib_amd64_blend_rgba_to_rgba_cmod},
{__imlib_amd64_copy_rgb_to_rgba_cmod,
__imlib_amd64_blend_rgb_to_rgba_cmod}}}},
/*\ OP_ADD \ */
{{{{__imlib_amd64_add_copy_rgba_to_rgb,
__imlib_amd64_add_blend_rgba_to_rgb},
@ -1584,10 +1592,14 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
{__imlib_amd64_add_copy_rgb_to_rgba,
__imlib_amd64_add_blend_rgb_to_rgba}}},
{{{__imlib_AddCopyRGBAToRGBCmod, __imlib_AddBlendRGBAToRGBCmod},
{__imlib_AddCopyRGBToRGBCmod, __imlib_AddBlendRGBToRGBCmod}},
{{__imlib_AddCopyRGBAToRGBACmod, __imlib_AddBlendRGBAToRGBACmod},
{__imlib_AddCopyRGBToRGBACmod, __imlib_AddBlendRGBToRGBACmod}}}},
{{{__imlib_amd64_add_copy_rgba_to_rgb_cmod,
__imlib_amd64_add_blend_rgba_to_rgb_cmod},
{__imlib_amd64_add_copy_rgb_to_rgb_cmod,
__imlib_amd64_add_blend_rgb_to_rgb_cmod}},
{{__imlib_amd64_add_copy_rgba_to_rgba_cmod,
__imlib_amd64_add_blend_rgba_to_rgba_cmod},
{__imlib_amd64_add_copy_rgb_to_rgba_cmod,
__imlib_amd64_add_blend_rgb_to_rgba_cmod}}}},
/*\ OP_SUBTRACT \ */
{{{{__imlib_amd64_subtract_copy_rgba_to_rgb,
__imlib_amd64_subtract_blend_rgba_to_rgb},
@ -1598,10 +1610,14 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
{__imlib_amd64_subtract_copy_rgb_to_rgba,
__imlib_amd64_subtract_blend_rgb_to_rgba}}},
{{{__imlib_SubCopyRGBAToRGBCmod, __imlib_SubBlendRGBAToRGBCmod},
{__imlib_SubCopyRGBToRGBCmod, __imlib_SubBlendRGBToRGBCmod}},
{{__imlib_SubCopyRGBAToRGBACmod, __imlib_SubBlendRGBAToRGBACmod},
{__imlib_SubCopyRGBToRGBACmod, __imlib_SubBlendRGBToRGBACmod}}}},
{{{__imlib_amd64_subtract_copy_rgba_to_rgb_cmod,
__imlib_amd64_subtract_blend_rgba_to_rgb_cmod},
{__imlib_amd64_subtract_copy_rgb_to_rgb_cmod,
__imlib_amd64_subtract_blend_rgb_to_rgb_cmod}},
{{__imlib_amd64_subtract_copy_rgba_to_rgba_cmod,
__imlib_amd64_subtract_blend_rgba_to_rgba_cmod},
{__imlib_amd64_subtract_copy_rgb_to_rgba_cmod,
__imlib_amd64_subtract_blend_rgb_to_rgba_cmod}}}},
/*\ OP_RESHADE \ */
{{{{__imlib_amd64_reshade_copy_rgba_to_rgb,
__imlib_amd64_reshade_blend_rgba_to_rgb},
@ -1612,10 +1628,14 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
{__imlib_amd64_reshade_copy_rgb_to_rgba,
__imlib_amd64_reshade_blend_rgb_to_rgba}}},
{{{__imlib_ReCopyRGBAToRGBCmod, __imlib_ReBlendRGBAToRGBCmod},
{__imlib_ReCopyRGBToRGBCmod, __imlib_ReBlendRGBToRGBCmod}},
{{__imlib_ReCopyRGBAToRGBACmod, __imlib_ReBlendRGBAToRGBACmod},
{__imlib_ReCopyRGBToRGBACmod, __imlib_ReBlendRGBToRGBACmod}}}}},
{{{__imlib_amd64_reshade_copy_rgba_to_rgb_cmod,
__imlib_amd64_reshade_blend_rgba_to_rgb_cmod},
{__imlib_amd64_reshade_copy_rgb_to_rgb_cmod,
__imlib_amd64_reshade_blend_rgb_to_rgb_cmod}},
{{__imlib_amd64_reshade_copy_rgba_to_rgba_cmod,
__imlib_amd64_reshade_blend_rgba_to_rgba_cmod},
{__imlib_amd64_reshade_copy_rgb_to_rgba_cmod,
__imlib_amd64_reshade_blend_rgb_to_rgba_cmod}}}}},
#endif
};

View File

@ -613,5 +613,90 @@ void
__imlib_amd64_reshade_copy_rgb_to_rgba(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_blend_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_blend_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_blend_rgb_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_blend_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_copy_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_copy_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_copy_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_blend_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_blend_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_blend_rgb_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_blend_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_copy_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_copy_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_add_copy_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_blend_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_blend_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_blend_rgb_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_blend_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_copy_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_copy_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_subtract_copy_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_blend_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_blend_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_blend_rgb_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_blend_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_copy_rgba_to_rgb_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_copy_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
void
__imlib_amd64_reshade_copy_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
int dw, int w, int h, ImlibColorModifier *cm);
#endif
#endif