? altivec.patch ? src/altivec_cmod.c Index: configure.in =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/configure.in,v retrieving revision 1.94 diff -u -r1.94 configure.in --- configure.in 4 Jan 2006 08:44:14 -0000 1.94 +++ configure.in 29 Jan 2006 15:19:12 -0000 @@ -554,6 +554,30 @@ AM_CONDITIONAL(HAVE_SSE2, test "x$HAVE_SSE2" = "xyes") dnl# +dnl# Altivec support +dnl# +AC_MSG_CHECKING(for Altivec support) +HAVE_ALTIVEC="" +AC_ARG_ENABLE(altivec, [ --enable-altivec enable altivec routines], [ + test "x$enableval" = "xyes" && HAVE_ALTIVEC="yes" + ], [ + case $host_cpu in + ppc) + ppc64) + grep altivec /proc/cpuinfo >/dev/null 2>&1 && HAVE_ALTIVEC="yes" + ;; + esac + ]) +if test "x$HAVE_ALTIVEC" = "xyes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_ALTIVEC, , [Define for Altivec support.]) +else + AC_MSG_RESULT([no (no Altivec detected)]) +fi +AM_CONDITIONAL(HAVE_ALTIVEC, test "x$HAVE_ALTIVEC" = "xyes") + + +dnl# dnl# LibAST dnl# LIBAST_MIN=5 Index: src/Makefile.am =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/Makefile.am,v retrieving revision 1.30 diff -u -r1.30 Makefile.am --- src/Makefile.am 14 Jun 2005 19:39:01 -0000 1.30 +++ src/Makefile.am 29 Jan 2006 15:19:34 -0000 @@ -9,6 +9,10 @@ SSE2_SRCS = sse2_cmod.c SSE2_OBJS = sse2_cmod.lo +ALTIVEC_SRCS = altivec_cmod.c +ALTIVEC_OBJS = altivec_cmod.lo + + libEterm_la_SOURCES = actions.c actions.h buttons.c buttons.h command.c \ command.h draw.c draw.h e.c e.h eterm_debug.h eterm_utmp.h \ events.c events.h feature.h font.c font.h grkelot.c \ @@ -19,7 +23,7 @@ timer.c timer.h utmp.c windows.c windows.h defaultfont.c \ defaultfont.h libscream.c scream.h screamcfg.h -EXTRA_libEterm_la_SOURCES = $(MMX_SRCS) $(SSE2_SRCS) +EXTRA_libEterm_la_SOURCES = $(MMX_SRCS) $(SSE2_SRCS) $(ALTIVEC_SRCS) libEterm_la_LDFLAGS = -release $(VERSION) if HAVE_SSE2 @@ -30,6 +34,10 @@ libEterm_la_DEPENDENCIES = feature.h $(MMX_OBJS) libEterm_la_LIBADD = $(MMX_OBJS) else +if HAVE_ALTIVEC +libEterm_la_DEPENDENCIES = feature.h $(ALTIVEC_OBJS) +libEterm_la_LIBADD = $(ALTIVEC_OBJS) +endif libEterm_la_DEPENDENCIES = feature.h endif endif @@ -39,7 +47,7 @@ Eterm_LDFLAGS = -rpath $(libdir):$(pkglibdir) Eterm_LDADD = libEterm.la -EXTRA_DIST = mmx_cmod.S sse2_cmod.c +EXTRA_DIST = mmx_cmod.S sse2_cmod.c altivec_cmod.c install-exec-hook: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) Index: src/pixmap.c =================================================================== RCS file: /cvsroot/enlightenment/eterm/Eterm/src/pixmap.c,v retrieving revision 1.117 diff -u -r1.117 pixmap.c --- src/pixmap.c 4 Jan 2006 09:22:40 -0000 1.117 +++ src/pixmap.c 29 Jan 2006 15:20:40 -0000 @@ -70,6 +70,11 @@ extern void shade_ximage_16_sse2(void *data, int bpl, int w, int h, int rm, int gm, int bm); extern void shade_ximage_32_sse2(void *data, int bpl, int w, int h, int rm, int gm, int bm); +/* Altivec routines for ppc g4 and later */ +extern void shade_ximage_15_altivec(void *data, int bpl, int w, int h, int rm, int gm, int bm); +extern void shade_ximage_16_altivec(void *data, int bpl, int w, int h, int rm, int gm, int bm); +extern void shade_ximage_32_altivec(void *data, int bpl, int w, int h, int rm, int gm, int bm); + #ifdef PIXMAP_SUPPORT static Imlib_Border bord_none = { 0, 0, 0, 0 }; #endif @@ -1859,6 +1864,9 @@ #elif defined HAVE_MMX D_PIXMAP(("Using MMX - 15 bit\n")); shade_ximage_15_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); +#elif defined HAVE_ALTIVEC + D_PIXMAP(("Using Altivec - 15 bit\n")); + shade_ximage_15_altivec(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); #else D_PIXMAP(("No MMX Found - 15 bit\n")); shade_ximage_15(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); @@ -1890,6 +1898,9 @@ #elif defined HAVE_MMX D_PIXMAP(("Using MMX - 32 bit\n")); shade_ximage_32_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); +#elif defined HAVE_ALTIVEC + D_PIXMAP(("Using Altivec - 32 bit\n")); + shade_ximage_32_altivec(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); #else D_PIXMAP(("No MMX Found - 32 bit\n")); shade_ximage_32(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);