forked from old/legacy-imlib2
parent
05735b6091
commit
155fb31bab
28
configure.in
28
configure.in
|
@ -90,11 +90,16 @@ AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}", [Source code director
|
|||
requirements="freetype2"
|
||||
|
||||
mmx=no
|
||||
amd64=no
|
||||
case $target_cpu in
|
||||
i*86)
|
||||
mmx="yes"
|
||||
;;
|
||||
x86_64)
|
||||
amd64="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_ENABLE(mmx,[ --enable-mmx attempt compiling using mmx assembly [default=auto]],
|
||||
[
|
||||
if test x$enableval = xyes; then
|
||||
|
@ -106,6 +111,21 @@ AC_ARG_ENABLE(mmx,[ --enable-mmx attempt compiling using mmx assembly
|
|||
fi
|
||||
]
|
||||
)
|
||||
|
||||
AC_ARG_ENABLE(amd64,[ --enable-amd64 attempt compiling using amd64 assembly [default=auto]],
|
||||
[
|
||||
if test x$enableval = xyes; then
|
||||
amd64=yes
|
||||
# Cannot compile with both options enabled
|
||||
mmx=no
|
||||
AC_MSG_RESULT(enabling amd64 support)
|
||||
else
|
||||
amd64=no
|
||||
AC_MSG_RESULT(disabling amd64 support)
|
||||
fi
|
||||
]
|
||||
)
|
||||
|
||||
if test x$mmx = xyes; then
|
||||
AC_DEFINE(DO_MMX_ASM, 1, [enabling MMX Assembly])
|
||||
AC_MSG_RESULT(enabled mmx support)
|
||||
|
@ -113,6 +133,13 @@ else
|
|||
AC_MSG_RESULT(disabled mmx support)
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_MMX, test x$mmx = xyes)
|
||||
if test x$amd64 = xyes; then
|
||||
AC_DEFINE(DO_AMD64_ASM, 1, [enabling AMD64 Assembly])
|
||||
AC_MSG_RESULT(enabled amd64 support)
|
||||
else
|
||||
AC_MSG_RESULT(disabled amd64 support)
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_AMD64, test x$amd64 = xyes)
|
||||
|
||||
# check for freetype
|
||||
AC_ARG_WITH(freetype-config, [ --with-freetype-config=FREETYPE_CONFIG use freetype-config specified ],
|
||||
|
@ -386,6 +413,7 @@ echo " BZIP2...................: $bz2_ok"
|
|||
echo
|
||||
echo
|
||||
echo "Use MMX for extra speed...: $mmx"
|
||||
echo "Use AMD64 for extra speed.: $amd64"
|
||||
echo
|
||||
echo
|
||||
echo "Installation Path.........: $prefix"
|
||||
|
|
|
@ -74,15 +74,25 @@ asm_rgba.S \
|
|||
asm_rotate.S \
|
||||
asm_scale.S
|
||||
|
||||
EXTRA_libImlib2_la_SOURCES = $(MMX_SRCS)
|
||||
AMD64_SRCS = \
|
||||
amd64_blend.S
|
||||
|
||||
MMX_OBJS = $(MMX_SRCS:.S=.lo)
|
||||
AMD64_OBJS = $(AMD64_SRCS:.S=.lo)
|
||||
|
||||
|
||||
if BUILD_MMX
|
||||
libImlib2_la_LIBADD = $(MMX_OBJS) @my_libs@
|
||||
libImlib2_la_DEPENDENCIES = $(top_builddir)/config.h $(MMX_OBJS)
|
||||
EXTRA_libImlib2_la_SOURCES = $(MMX_SRCS)
|
||||
else
|
||||
if BUILD_AMD64
|
||||
libImlib2_la_LIBADD = $(AMD64_OBJS) @my_libs@
|
||||
libImlib2_la_DEPENDENCIES = $(top_builddir)/config.h $(AMD64_OBJS)
|
||||
EXTRA_libImlib2_la_SOURCES = $(AMD64_SOURCES)
|
||||
else
|
||||
libImlib2_la_LIBADD = @my_libs@
|
||||
libImlib2_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||
endif
|
||||
endif
|
||||
libImlib2_la_LDFLAGS = -version-info 3:0:2
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1397,6 +1397,9 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
|
|||
#define __imlib_mmx_copy_rgb_to_rgb __imlib_mmx_copy_rgb_to_rgba
|
||||
#define __imlib_mmx_blend_rgb_to_rgb __imlib_mmx_copy_rgb_to_rgb
|
||||
#define __imlib_mmx_blend_rgb_to_rgba __imlib_mmx_copy_rgb_to_rgba
|
||||
#define __imlib_amd64_copy_rgb_to_rgb __imlib_amd64_copy_rgb_to_rgba
|
||||
#define __imlib_amd64_blend_rgb_to_rgb __imlib_amd64_copy_rgb_to_rgb
|
||||
#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
|
||||
|
||||
|
@ -1406,6 +1409,9 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
|
|||
#define __imlib_mmx_add_copy_rgb_to_rgb __imlib_mmx_add_copy_rgba_to_rgb
|
||||
#define __imlib_mmx_add_blend_rgb_to_rgb __imlib_mmx_add_copy_rgb_to_rgb
|
||||
#define __imlib_mmx_add_blend_rgb_to_rgba __imlib_mmx_add_copy_rgb_to_rgba
|
||||
#define __imlib_amd64_add_copy_rgb_to_rgb __imlib_amd64_add_copy_rgba_to_rgb
|
||||
#define __imlib_amd64_add_blend_rgb_to_rgb __imlib_amd64_add_copy_rgb_to_rgb
|
||||
#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
|
||||
|
||||
|
@ -1416,6 +1422,9 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
|
|||
#define __imlib_mmx_subtract_copy_rgb_to_rgb __imlib_mmx_subtract_copy_rgba_to_rgb
|
||||
#define __imlib_mmx_subtract_blend_rgb_to_rgb __imlib_mmx_subtract_copy_rgb_to_rgb
|
||||
#define __imlib_mmx_subtract_blend_rgb_to_rgba __imlib_mmx_subtract_copy_rgb_to_rgba
|
||||
#define __imlib_amd64_subtract_copy_rgb_to_rgb __imlib_amd64_subtract_copy_rgba_to_rgb
|
||||
#define __imlib_amd64_subtract_blend_rgb_to_rgb __imlib_amd64_subtract_copy_rgb_to_rgb
|
||||
#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
|
||||
|
||||
|
@ -1426,6 +1435,9 @@ __imlib_ReCopyRGBToRGBACmod(DATA32 * src, int srcw, DATA32 * dst, int dstw,
|
|||
#define __imlib_mmx_reshade_copy_rgb_to_rgb __imlib_mmx_reshade_copy_rgba_to_rgb
|
||||
#define __imlib_mmx_reshade_blend_rgb_to_rgb __imlib_mmx_reshade_copy_rgb_to_rgb
|
||||
#define __imlib_mmx_reshade_blend_rgb_to_rgba __imlib_mmx_reshade_copy_rgb_to_rgba
|
||||
#define __imlib_amd64_reshade_copy_rgb_to_rgb __imlib_amd64_reshade_copy_rgba_to_rgb
|
||||
#define __imlib_amd64_reshade_blend_rgb_to_rgb __imlib_amd64_reshade_copy_rgb_to_rgb
|
||||
#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
|
||||
|
||||
|
@ -1551,6 +1563,59 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
|
|||
/*__imlib_mmx_reshade_blend_rgba_to_rgba_cmod*/ },
|
||||
{__imlib_ReCopyRGBToRGBACmod /*__imlib_mmx_reshade_copy_rgb_to_rgba_cmod*/,
|
||||
__imlib_ReBlendRGBToRGBACmod /*__imlib_mmx_reshade_blend_rgb_to_rgba_cmod*/}}}}},
|
||||
#elif DO_AMD64_ASM
|
||||
/*\ OP_COPY \ */
|
||||
{{{{{__imlib_amd64_copy_rgba_to_rgb, __imlib_amd64_blend_rgba_to_rgb},
|
||||
{__imlib_amd64_copy_rgb_to_rgb, __imlib_amd64_blend_rgb_to_rgb}},
|
||||
{{__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}}}},
|
||||
/*\ OP_ADD \ */
|
||||
{{{{__imlib_amd64_add_copy_rgba_to_rgb,
|
||||
__imlib_amd64_add_blend_rgba_to_rgb},
|
||||
{__imlib_amd64_add_copy_rgb_to_rgb,
|
||||
__imlib_amd64_add_blend_rgb_to_rgb}},
|
||||
{{__imlib_amd64_add_copy_rgba_to_rgba,
|
||||
__imlib_amd64_add_blend_rgba_to_rgba},
|
||||
{__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}}}},
|
||||
/*\ OP_SUBTRACT \ */
|
||||
{{{{__imlib_amd64_subtract_copy_rgba_to_rgb,
|
||||
__imlib_amd64_subtract_blend_rgba_to_rgb},
|
||||
{__imlib_amd64_subtract_copy_rgb_to_rgb,
|
||||
__imlib_amd64_subtract_blend_rgb_to_rgb}},
|
||||
{{__imlib_amd64_subtract_copy_rgba_to_rgba,
|
||||
__imlib_amd64_subtract_blend_rgba_to_rgba},
|
||||
{__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}}}},
|
||||
/*\ OP_RESHADE \ */
|
||||
{{{{__imlib_amd64_reshade_copy_rgba_to_rgb,
|
||||
__imlib_amd64_reshade_blend_rgba_to_rgb},
|
||||
{__imlib_amd64_reshade_copy_rgb_to_rgb,
|
||||
__imlib_amd64_reshade_blend_rgb_to_rgb}},
|
||||
{{__imlib_amd64_reshade_copy_rgba_to_rgba,
|
||||
__imlib_amd64_reshade_blend_rgba_to_rgba},
|
||||
{__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}}}}},
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -1564,6 +1629,8 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
|
|||
|
||||
#ifdef DO_MMX_ASM
|
||||
do_mmx = !!(__imlib_get_cpuid() & CPUID_MMX);
|
||||
#elif DO_AMD64_ASM
|
||||
do_mmx = 1; // instruction set is always present
|
||||
#endif
|
||||
if (cm && rgb_src && (A_CMOD(cm, 0xff) == 0xff))
|
||||
blend = 0;
|
||||
|
|
|
@ -551,6 +551,67 @@ __imlib_mmx_reshade_copy_rgba_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
|
|||
void
|
||||
__imlib_mmx_reshade_copy_rgb_to_rgba_cmod(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
#elif DO_AMD64_ASM
|
||||
void
|
||||
__imlib_amd64_blend_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_blend_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_copy_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_copy_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_copy_rgb_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_add_blend_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_add_blend_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_add_copy_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_add_copy_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_add_copy_rgb_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_subtract_blend_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_subtract_blend_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_subtract_copy_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_subtract_copy_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_subtract_copy_rgb_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_reshade_blend_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_reshade_blend_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_reshade_copy_rgba_to_rgb(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_reshade_copy_rgba_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
void
|
||||
__imlib_amd64_reshade_copy_rgb_to_rgba(DATA32 *src, int sw, DATA32 *dst,
|
||||
int dw, int w, int h, ImlibColorModifier *cm);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue