aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_mul
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-04 18:41:13 +1000
committerDavid Walter Seikel2012-01-04 18:41:13 +1000
commitdd7595a3475407a7fa96a97393bae8c5220e8762 (patch)
treee341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/lib/engines/common/evas_op_mul
parentAdd the skeleton. (diff)
downloadSledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz
Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje.
Note that embryo wont be used, but I'm not sure yet if you can build edje without it.
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_mul')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am13
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in543
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c65
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c66
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c72
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c92
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c56
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c122
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c120
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c66
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c117
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c63
12 files changed, 1395 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am
new file mode 100644
index 0000000..e3d0b82
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.am
@@ -0,0 +1,13 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3EXTRA_DIST = \
4op_mul_color_.c \
5op_mul_color_i386.c \
6op_mul_mask_color_.c \
7op_mul_mask_color_i386.c \
8op_mul_pixel_.c \
9op_mul_pixel_color_.c \
10op_mul_pixel_color_i386.c \
11op_mul_pixel_i386.c \
12op_mul_pixel_mask_.c \
13op_mul_pixel_mask_i386.c
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in
new file mode 100644
index 0000000..f239cf7
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/Makefile.in
@@ -0,0 +1,543 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36subdir = src/lib/engines/common/evas_op_mul
37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
40 $(top_srcdir)/m4/efl_coverage.m4 \
41 $(top_srcdir)/m4/efl_doxygen.m4 \
42 $(top_srcdir)/m4/efl_fnmatch.m4 \
43 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
44 $(top_srcdir)/m4/evas_check_engine.m4 \
45 $(top_srcdir)/m4/evas_check_loader.m4 \
46 $(top_srcdir)/m4/evas_converter.m4 \
47 $(top_srcdir)/m4/evas_dither.m4 \
48 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
49 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
50 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
51 $(top_srcdir)/configure.ac
52am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
53 $(ACLOCAL_M4)
54mkinstalldirs = $(install_sh) -d
55CONFIG_HEADER = $(top_builddir)/config.h
56CONFIG_CLEAN_FILES =
57CONFIG_CLEAN_VPATH_FILES =
58AM_V_GEN = $(am__v_GEN_$(V))
59am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
60am__v_GEN_0 = @echo " GEN " $@;
61AM_V_at = $(am__v_at_$(V))
62am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
63am__v_at_0 = @
64SOURCES =
65DIST_SOURCES =
66DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
67ACLOCAL = @ACLOCAL@
68ALLOCA = @ALLOCA@
69AMTAR = @AMTAR@
70AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
71AR = @AR@
72AS = @AS@
73AUTOCONF = @AUTOCONF@
74AUTOHEADER = @AUTOHEADER@
75AUTOMAKE = @AUTOMAKE@
76AWK = @AWK@
77CC = @CC@
78CCDEPMODE = @CCDEPMODE@
79CFLAGS = @CFLAGS@
80CHECK_CFLAGS = @CHECK_CFLAGS@
81CHECK_LIBS = @CHECK_LIBS@
82CPP = @CPP@
83CPPFLAGS = @CPPFLAGS@
84CXX = @CXX@
85CXXCPP = @CXXCPP@
86CXXDEPMODE = @CXXDEPMODE@
87CXXFLAGS = @CXXFLAGS@
88CYGPATH_W = @CYGPATH_W@
89DEFS = @DEFS@
90DEPDIR = @DEPDIR@
91DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
92DIRECTFB_LIBS = @DIRECTFB_LIBS@
93DLLTOOL = @DLLTOOL@
94DSYMUTIL = @DSYMUTIL@
95DUMPBIN = @DUMPBIN@
96ECHO_C = @ECHO_C@
97ECHO_N = @ECHO_N@
98ECHO_T = @ECHO_T@
99ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
100ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
101EDB_CFLAGS = @EDB_CFLAGS@
102EDB_LIBS = @EDB_LIBS@
103EDJE_CFLAGS = @EDJE_CFLAGS@
104EDJE_LIBS = @EDJE_LIBS@
105EET_CFLAGS = @EET_CFLAGS@
106EET_LIBS = @EET_LIBS@
107EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
108EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
109EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
110EGREP = @EGREP@
111EINA_CFLAGS = @EINA_CFLAGS@
112EINA_LIBS = @EINA_LIBS@
113EVAS_CFLAGS = @EVAS_CFLAGS@
114EVAS_LIBS = @EVAS_LIBS@
115EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
116EVIL_CFLAGS = @EVIL_CFLAGS@
117EVIL_LIBS = @EVIL_LIBS@
118EXEEXT = @EXEEXT@
119FGREP = @FGREP@
120FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
121FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
122FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
123FREETYPE_LIBS = @FREETYPE_LIBS@
124FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
125FRIBIDI_LIBS = @FRIBIDI_LIBS@
126GL_EET_CFLAGS = @GL_EET_CFLAGS@
127GL_EET_LIBS = @GL_EET_LIBS@
128GREP = @GREP@
129HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
130HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
131INSTALL = @INSTALL@
132INSTALL_DATA = @INSTALL_DATA@
133INSTALL_PROGRAM = @INSTALL_PROGRAM@
134INSTALL_SCRIPT = @INSTALL_SCRIPT@
135INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
136LD = @LD@
137LDFLAGS = @LDFLAGS@
138LIBOBJS = @LIBOBJS@
139LIBS = @LIBS@
140LIBTOOL = @LIBTOOL@
141LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
142LINEBREAK_LIBS = @LINEBREAK_LIBS@
143LIPO = @LIPO@
144LN_S = @LN_S@
145LTLIBOBJS = @LTLIBOBJS@
146MAKEINFO = @MAKEINFO@
147MKDIR_P = @MKDIR_P@
148MODULE_ARCH = @MODULE_ARCH@
149NM = @NM@
150NMEDIT = @NMEDIT@
151OBJC = @OBJC@
152OBJCDEPMODE = @OBJCDEPMODE@
153OBJCFLAGS = @OBJCFLAGS@
154OBJDUMP = @OBJDUMP@
155OBJEXT = @OBJEXT@
156OTOOL = @OTOOL@
157OTOOL64 = @OTOOL64@
158PACKAGE = @PACKAGE@
159PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
160PACKAGE_NAME = @PACKAGE_NAME@
161PACKAGE_STRING = @PACKAGE_STRING@
162PACKAGE_TARNAME = @PACKAGE_TARNAME@
163PACKAGE_URL = @PACKAGE_URL@
164PACKAGE_VERSION = @PACKAGE_VERSION@
165PATH_SEPARATOR = @PATH_SEPARATOR@
166PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
167PIXMAN_LIBS = @PIXMAN_LIBS@
168PKG_CONFIG = @PKG_CONFIG@
169PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171PNG_CFLAGS = @PNG_CFLAGS@
172PNG_LIBS = @PNG_LIBS@
173RANLIB = @RANLIB@
174SDL_CFLAGS = @SDL_CFLAGS@
175SDL_LIBS = @SDL_LIBS@
176SED = @SED@
177SET_MAKE = @SET_MAKE@
178SHELL = @SHELL@
179SHM_OPEN_LINK = @SHM_OPEN_LINK@
180STRIP = @STRIP@
181SVG_CFLAGS = @SVG_CFLAGS@
182SVG_LIBS = @SVG_LIBS@
183VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
184VALGRIND_LIBS = @VALGRIND_LIBS@
185VERSION = @VERSION@
186VMAJ = @VMAJ@
187WIN32_CFLAGS = @WIN32_CFLAGS@
188WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
189XCB_CFLAGS = @XCB_CFLAGS@
190XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
191XCB_GL_LIBS = @XCB_GL_LIBS@
192XCB_LIBS = @XCB_LIBS@
193XEXT_CFLAGS = @XEXT_CFLAGS@
194XEXT_LIBS = @XEXT_LIBS@
195XMKMF = @XMKMF@
196X_CFLAGS = @X_CFLAGS@
197X_EXTRA_LIBS = @X_EXTRA_LIBS@
198X_LIBS = @X_LIBS@
199X_PRE_LIBS = @X_PRE_LIBS@
200abs_builddir = @abs_builddir@
201abs_srcdir = @abs_srcdir@
202abs_top_builddir = @abs_top_builddir@
203abs_top_srcdir = @abs_top_srcdir@
204ac_ct_CC = @ac_ct_CC@
205ac_ct_CXX = @ac_ct_CXX@
206ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
207ac_ct_OBJC = @ac_ct_OBJC@
208altivec_cflags = @altivec_cflags@
209am__include = @am__include@
210am__leading_dot = @am__leading_dot@
211am__quote = @am__quote@
212am__tar = @am__tar@
213am__untar = @am__untar@
214bindir = @bindir@
215build = @build@
216build_alias = @build_alias@
217build_cpu = @build_cpu@
218build_os = @build_os@
219build_vendor = @build_vendor@
220builddir = @builddir@
221datadir = @datadir@
222datarootdir = @datarootdir@
223dlopen_libs = @dlopen_libs@
224docdir = @docdir@
225dvidir = @dvidir@
226edje_cc = @edje_cc@
227efl_doxygen = @efl_doxygen@
228efl_have_doxygen = @efl_have_doxygen@
229evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
230evas_engine_buffer_libs = @evas_engine_buffer_libs@
231evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
232evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
233evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
234evas_engine_directfb_libs = @evas_engine_directfb_libs@
235evas_engine_fb_cflags = @evas_engine_fb_cflags@
236evas_engine_fb_libs = @evas_engine_fb_libs@
237evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
238evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
239evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
240evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
241evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
242evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
243evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
244evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
245evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
246evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
247evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
248evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
249evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
250evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
251evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
252evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
253evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
254evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
255evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
256evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
257evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
258evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
259evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
260evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
261evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
262evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
263evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
264evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
265evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
266evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
267evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
268evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
269evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
270evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
271evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
272evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
273evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
274evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
275evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
276evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
277evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
278evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
279evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
280evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
281evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
282evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
283evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
284evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
285evas_image_loader_png_libs = @evas_image_loader_png_libs@
286evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
287evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
288evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
289evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
290evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
291evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
292evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
293evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
294evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
295evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
296evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
297evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
298exec_prefix = @exec_prefix@
299have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
300have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
301have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
302have_evas_engine_software_x11 = @have_evas_engine_software_x11@
303have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
304have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
305have_lcov = @have_lcov@
306host = @host@
307host_alias = @host_alias@
308host_cpu = @host_cpu@
309host_os = @host_os@
310host_vendor = @host_vendor@
311htmldir = @htmldir@
312includedir = @includedir@
313infodir = @infodir@
314install_sh = @install_sh@
315libdir = @libdir@
316libexecdir = @libexecdir@
317localedir = @localedir@
318localstatedir = @localstatedir@
319lt_ECHO = @lt_ECHO@
320lt_enable_auto_import = @lt_enable_auto_import@
321mandir = @mandir@
322mkdir_p = @mkdir_p@
323oldincludedir = @oldincludedir@
324pdfdir = @pdfdir@
325pkgconfig_requires_private = @pkgconfig_requires_private@
326prefix = @prefix@
327program_transform_name = @program_transform_name@
328psdir = @psdir@
329pthread_cflags = @pthread_cflags@
330pthread_libs = @pthread_libs@
331release_info = @release_info@
332requirement_evas = @requirement_evas@
333sbindir = @sbindir@
334sharedstatedir = @sharedstatedir@
335srcdir = @srcdir@
336sysconfdir = @sysconfdir@
337target_alias = @target_alias@
338top_build_prefix = @top_build_prefix@
339top_builddir = @top_builddir@
340top_srcdir = @top_srcdir@
341version_info = @version_info@
342MAINTAINERCLEANFILES = Makefile.in
343EXTRA_DIST = \
344op_mul_color_.c \
345op_mul_color_i386.c \
346op_mul_mask_color_.c \
347op_mul_mask_color_i386.c \
348op_mul_pixel_.c \
349op_mul_pixel_color_.c \
350op_mul_pixel_color_i386.c \
351op_mul_pixel_i386.c \
352op_mul_pixel_mask_.c \
353op_mul_pixel_mask_i386.c
354
355all: all-am
356
357.SUFFIXES:
358$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
359 @for dep in $?; do \
360 case '$(am__configure_deps)' in \
361 *$$dep*) \
362 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
363 && { if test -f $@; then exit 0; else break; fi; }; \
364 exit 1;; \
365 esac; \
366 done; \
367 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mul/Makefile'; \
368 $(am__cd) $(top_srcdir) && \
369 $(AUTOMAKE) --gnu src/lib/engines/common/evas_op_mul/Makefile
370.PRECIOUS: Makefile
371Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
372 @case '$?' in \
373 *config.status*) \
374 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
375 *) \
376 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
377 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
378 esac;
379
380$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
381 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
382
383$(top_srcdir)/configure: $(am__configure_deps)
384 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
385$(ACLOCAL_M4): $(am__aclocal_m4_deps)
386 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
387$(am__aclocal_m4_deps):
388
389mostlyclean-libtool:
390 -rm -f *.lo
391
392clean-libtool:
393 -rm -rf .libs _libs
394tags: TAGS
395TAGS:
396
397ctags: CTAGS
398CTAGS:
399
400
401distdir: $(DISTFILES)
402 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
403 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
404 list='$(DISTFILES)'; \
405 dist_files=`for file in $$list; do echo $$file; done | \
406 sed -e "s|^$$srcdirstrip/||;t" \
407 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
408 case $$dist_files in \
409 */*) $(MKDIR_P) `echo "$$dist_files" | \
410 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
411 sort -u` ;; \
412 esac; \
413 for file in $$dist_files; do \
414 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
415 if test -d $$d/$$file; then \
416 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
417 if test -d "$(distdir)/$$file"; then \
418 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
419 fi; \
420 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
421 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
422 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
423 fi; \
424 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
425 else \
426 test -f "$(distdir)/$$file" \
427 || cp -p $$d/$$file "$(distdir)/$$file" \
428 || exit 1; \
429 fi; \
430 done
431check-am: all-am
432check: check-am
433all-am: Makefile
434installdirs:
435install: install-am
436install-exec: install-exec-am
437install-data: install-data-am
438uninstall: uninstall-am
439
440install-am: all-am
441 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
442
443installcheck: installcheck-am
444install-strip:
445 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
446 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
447 `test -z '$(STRIP)' || \
448 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
449mostlyclean-generic:
450
451clean-generic:
452
453distclean-generic:
454 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
455 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
456
457maintainer-clean-generic:
458 @echo "This command is intended for maintainers to use"
459 @echo "it deletes files that may require special tools to rebuild."
460 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
461clean: clean-am
462
463clean-am: clean-generic clean-libtool mostlyclean-am
464
465distclean: distclean-am
466 -rm -f Makefile
467distclean-am: clean-am distclean-generic
468
469dvi: dvi-am
470
471dvi-am:
472
473html: html-am
474
475html-am:
476
477info: info-am
478
479info-am:
480
481install-data-am:
482
483install-dvi: install-dvi-am
484
485install-dvi-am:
486
487install-exec-am:
488
489install-html: install-html-am
490
491install-html-am:
492
493install-info: install-info-am
494
495install-info-am:
496
497install-man:
498
499install-pdf: install-pdf-am
500
501install-pdf-am:
502
503install-ps: install-ps-am
504
505install-ps-am:
506
507installcheck-am:
508
509maintainer-clean: maintainer-clean-am
510 -rm -f Makefile
511maintainer-clean-am: distclean-am maintainer-clean-generic
512
513mostlyclean: mostlyclean-am
514
515mostlyclean-am: mostlyclean-generic mostlyclean-libtool
516
517pdf: pdf-am
518
519pdf-am:
520
521ps: ps-am
522
523ps-am:
524
525uninstall-am:
526
527.MAKE: install-am install-strip
528
529.PHONY: all all-am check check-am clean clean-generic clean-libtool \
530 distclean distclean-generic distclean-libtool distdir dvi \
531 dvi-am html html-am info info-am install install-am \
532 install-data install-data-am install-dvi install-dvi-am \
533 install-exec install-exec-am install-html install-html-am \
534 install-info install-info-am install-man install-pdf \
535 install-pdf-am install-ps install-ps-am install-strip \
536 installcheck installcheck-am installdirs maintainer-clean \
537 maintainer-clean-generic mostlyclean mostlyclean-generic \
538 mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
539
540
541# Tell versions [3.59,3.63) of GNU make to not export all variables.
542# Otherwise a system limit (for SysV at least) may be exceeded.
543.NOEXPORT:
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c
new file mode 100644
index 0000000..fb656b5
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_.c
@@ -0,0 +1,65 @@
1/* mul color --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_c_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 for (; d < e; d++) {
8 *d = MUL4_SYM(c, *d);
9 }
10}
11
12static void
13_op_mul_caa_dp(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
14 DATA32 *e = d + l;
15 c = 1 + (c >> 24);
16 for (; d < e; d++) {
17 *d = MUL_256(c, *d);
18 }
19}
20
21#define _op_mul_can_dp _op_mul_c_dp
22
23#define _op_mul_c_dpan _op_mul_c_dp
24#define _op_mul_can_dpan _op_mul_can_dp
25#define _op_mul_caa_dpan _op_mul_caa_dp
26
27static void
28init_mul_color_span_funcs_c(void)
29{
30 op_mul_span_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mul_c_dp;
31 op_mul_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_mul_can_dp;
32 op_mul_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mul_caa_dp;
33
34 op_mul_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mul_c_dpan;
35 op_mul_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_can_dpan;
36 op_mul_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_caa_dpan;
37}
38#endif
39
40#ifdef BUILD_C
41static void
42_op_mul_pt_c_dp(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
43 *d = MUL4_SYM(c, *d);
44}
45
46#define _op_mul_pt_can_dp _op_mul_pt_c_dp
47#define _op_mul_pt_caa_dp _op_mul_pt_c_dp
48
49#define _op_mul_pt_c_dpan _op_mul_pt_c_dp
50#define _op_mul_pt_can_dpan _op_mul_pt_can_dp
51#define _op_mul_pt_caa_dpan _op_mul_pt_caa_dp
52
53static void
54init_mul_color_pt_funcs_c(void)
55{
56 op_mul_pt_funcs[SP_N][SM_N][SC][DP][CPU_C] = _op_mul_pt_c_dp;
57 op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_can_dp;
58 op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_caa_dp;
59
60 op_mul_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_c_dpan;
61 op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_can_dpan;
62 op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_caa_dpan;
63}
64#endif
65
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c
new file mode 100644
index 0000000..95f43f6
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_color_i386.c
@@ -0,0 +1,66 @@
1/* mul color --> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_mul_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 pxor_r2r(mm0, mm0);
8 MOV_A2R(ALPHA_255, mm5)
9 MOV_P2R(c, mm2, mm0)
10 for (; d < e; d++) {
11 MOV_P2R(*d, mm1, mm0)
12 MUL4_SYM_R2R(mm2, mm1, mm5)
13 MOV_R2P(mm1, *d, mm0)
14 }
15}
16
17#define _op_mul_can_dp_mmx _op_mul_c_dp_mmx
18#define _op_mul_caa_dp_mmx _op_mul_c_dp_mmx
19
20#define _op_mul_c_dpan_mmx _op_mul_c_dp_mmx
21#define _op_mul_can_dpan_mmx _op_mul_can_dp_mmx
22#define _op_mul_caa_dpan_mmx _op_mul_caa_dp_mmx
23
24static void
25init_mul_color_span_funcs_mmx(void)
26{
27 op_mul_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mul_c_dp_mmx;
28 op_mul_span_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_can_dp_mmx;
29 op_mul_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_caa_dp_mmx;
30
31 op_mul_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_c_dpan_mmx;
32 op_mul_span_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_can_dpan_mmx;
33 op_mul_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_caa_dpan_mmx;
34}
35#endif
36
37#ifdef BUILD_MMX
38static void
39_op_mul_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
40 pxor_r2r(mm0, mm0);
41 MOV_A2R(ALPHA_255, mm5)
42 MOV_P2R(c, mm2, mm0)
43 MOV_P2R(*d, mm1, mm0)
44 MUL4_SYM_R2R(mm2, mm1, mm5)
45 MOV_R2P(mm1, *d, mm0)
46}
47
48#define _op_mul_pt_caa_dp_mmx _op_mul_pt_c_dp_mmx
49#define _op_mul_pt_can_dp_mmx _op_mul_pt_c_dp_mmx
50
51#define _op_mul_pt_c_dpan_mmx _op_mul_pt_c_dp_mmx
52#define _op_mul_pt_can_dpan_mmx _op_mul_pt_can_dp_mmx
53#define _op_mul_pt_caa_dpan_mmx _op_mul_pt_caa_dp_mmx
54
55static void
56init_mul_color_pt_funcs_mmx(void)
57{
58 op_mul_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_c_dp_mmx;
59 op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_can_dp_mmx;
60 op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_caa_dp_mmx;
61
62 op_mul_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_c_dpan_mmx;
63 op_mul_pt_funcs[SP_N][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_can_dpan_mmx;
64 op_mul_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_caa_dpan_mmx;
65}
66#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c
new file mode 100644
index 0000000..7a6e403
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_.c
@@ -0,0 +1,72 @@
1/* mul mask x color -> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_mas_c_dp(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l, nc = ~c;
7 while (d < e)
8 {
9 DATA32 a = *m;
10 switch(a)
11 {
12 case 0:
13 break;
14 case 255:
15 *d = MUL4_SYM(c, *d);
16 break;
17 default:
18 a = ~MUL_SYM(a, nc);
19 *d = MUL4_SYM(a, *d);
20 break;
21 }
22 m++; d++;
23 }
24}
25
26#define _op_mul_mas_can_dp _op_mul_mas_c_dp
27#define _op_mul_mas_caa_dp _op_mul_mas_c_dp
28
29#define _op_mul_mas_c_dpan _op_mul_mas_c_dp
30#define _op_mul_mas_can_dpan _op_mul_mas_can_dp
31#define _op_mul_mas_caa_dpan _op_mul_mas_caa_dp
32
33static void
34init_mul_mask_color_span_funcs_c(void)
35{
36 op_mul_span_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mul_mas_c_dp;
37 op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_mul_mas_can_dp;
38 op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mul_mas_caa_dp;
39
40 op_mul_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mul_mas_c_dpan;
41 op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_mul_mas_can_dpan;
42 op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mul_mas_caa_dpan;
43}
44#endif
45
46#ifdef BUILD_C
47static void
48_op_mul_pt_mas_c_dp(DATA32 s __UNUSED__, DATA8 m, DATA32 c, DATA32 *d) {
49 c = ~c;
50 c = ~MUL_SYM(m, c);
51 *d = MUL4_SYM(c, *d);
52}
53
54#define _op_mul_pt_mas_can_dp _op_mul_pt_mas_c_dp
55#define _op_mul_pt_mas_caa_dp _op_mul_pt_mas_c_dp
56
57#define _op_mul_pt_mas_c_dpan _op_mul_pt_mas_c_dp
58#define _op_mul_pt_mas_can_dpan _op_mul_pt_mas_can_dp
59#define _op_mul_pt_mas_caa_dpan _op_mul_pt_mas_caa_dp
60
61static void
62init_mul_mask_color_pt_funcs_c(void)
63{
64 op_mul_pt_funcs[SP_N][SM_AS][SC][DP][CPU_C] = _op_mul_pt_mas_c_dp;
65 op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_C] = _op_mul_pt_mas_can_dp;
66 op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_C] = _op_mul_pt_mas_caa_dp;
67
68 op_mul_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_C] = _op_mul_pt_mas_c_dpan;
69 op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_C] = _op_mul_pt_mas_can_dpan;
70 op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_C] = _op_mul_pt_mas_caa_dpan;
71}
72#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c
new file mode 100644
index 0000000..1999503
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_mask_color_i386.c
@@ -0,0 +1,92 @@
1/* mul mask x color -> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_mul_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 MOV_P2R(c, mm2, mm0)
8 c = ~c;
9 MOV_P2R(c, mm3, mm0)
10 MOV_A2R(ALPHA_255, mm5)
11 pxor_r2r(mm0, mm0);
12 while (d < e) {
13 DATA32 a = *m;
14 switch(a)
15 {
16 case 0:
17 break;
18 case 255:
19 MOV_P2R(*d, mm1, mm0)
20 MUL4_SYM_R2R(mm2, mm1, mm5)
21 MOV_R2P(mm1, *d, mm0)
22 break;
23 default:
24 a++;
25 MOV_A2R(a, mm1)
26 MUL4_256_R2R(mm3, mm1)
27 movq_r2r(mm5, mm4);
28 psubw_r2r(mm1, mm4);
29 MOV_P2R(*d, mm1, mm0)
30 MUL4_SYM_R2R(mm4, mm1, mm5)
31 MOV_R2P(mm1, *d, mm0)
32 break;
33 }
34 m++; d++;
35 }
36}
37
38#define _op_mul_mas_can_dp_mmx _op_mul_mas_c_dp_mmx
39#define _op_mul_mas_caa_dp_mmx _op_mul_mas_c_dp_mmx
40
41#define _op_mul_mas_c_dpan_mmx _op_mul_mas_c_dp_mmx
42#define _op_mul_mas_can_dpan_mmx _op_mul_mas_can_dp_mmx
43#define _op_mul_mas_caa_dpan_mmx _op_mul_mas_caa_dp_mmx
44
45static void
46init_mul_mask_color_span_funcs_mmx(void)
47{
48 op_mul_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_mul_mas_c_dp_mmx;
49 op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_mul_mas_can_dp_mmx;
50 op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_mul_mas_caa_dp_mmx;
51
52 op_mul_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_mul_mas_c_dpan_mmx;
53 op_mul_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_mul_mas_can_dpan_mmx;
54 op_mul_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_mul_mas_caa_dpan_mmx;
55}
56#endif
57
58#ifdef BUILD_MMX
59static void
60_op_mul_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
61 s = m + 1;
62 c = ~c;
63 MOV_P2R(c, mm3, mm0)
64 MOV_A2R(ALPHA_255, mm4)
65 pxor_r2r(mm0, mm0);
66 MOV_A2R(s, mm1)
67 MUL4_256_R2R(mm3, mm1)
68 psubw_r2r(mm1, mm4);
69 MOV_P2R(*d, mm1, mm0)
70 MUL4_SYM_R2R(mm4, mm1, mm5)
71 MOV_R2P(mm1, *d, mm0)
72}
73
74#define _op_mul_pt_mas_can_dp_mmx _op_mul_pt_mas_c_dp_mmx
75#define _op_mul_pt_mas_caa_dp_mmx _op_mul_pt_mas_c_dp_mmx
76
77#define _op_mul_pt_mas_c_dpan_mmx _op_mul_pt_mas_c_dp_mmx
78#define _op_mul_pt_mas_can_dpan_mmx _op_mul_pt_mas_can_dp_mmx
79#define _op_mul_pt_mas_caa_dpan_mmx _op_mul_pt_mas_caa_dp_mmx
80
81static void
82init_mul_mask_color_pt_funcs_mmx(void)
83{
84 op_mul_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_mul_pt_mas_c_dp_mmx;
85 op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_mul_pt_mas_can_dp_mmx;
86 op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_mul_pt_mas_caa_dp_mmx;
87
88 op_mul_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_mul_pt_mas_c_dpan_mmx;
89 op_mul_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_mas_can_dpan_mmx;
90 op_mul_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_mas_caa_dpan_mmx;
91}
92#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c
new file mode 100644
index 0000000..2e034b9
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_.c
@@ -0,0 +1,56 @@
1/* mul pixel --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_p_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 for (; d < e; d++, s++) {
8 *d = MUL4_SYM(*s, *d);
9 }
10}
11
12#define _op_mul_pas_dp _op_mul_p_dp
13#define _op_mul_pan_dp _op_mul_p_dp
14
15#define _op_mul_p_dpan _op_mul_p_dp
16#define _op_mul_pas_dpan _op_mul_pas_dp
17#define _op_mul_pan_dpan _op_mul_pan_dp
18
19static void
20init_mul_pixel_span_funcs_c(void)
21{
22 op_mul_span_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_p_dp;
23 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pas_dp;
24 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pan_dp;
25
26 op_mul_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_p_dpan;
27 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pas_dpan;
28 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pan_dpan;
29}
30#endif
31
32#ifdef BUILD_C
33static void
34_op_mul_pt_p_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
35 *d = MUL4_SYM(s, *d);
36}
37
38#define _op_mul_pt_pas_dp _op_mul_pt_p_dp
39#define _op_mul_pt_pan_dp _op_mul_pt_p_dp
40
41#define _op_mul_pt_p_dpan _op_mul_pt_p_dp
42#define _op_mul_pt_pan_dpan _op_mul_pt_pan_dp
43#define _op_mul_pt_pas_dpan _op_mul_pt_pas_dp
44
45static void
46init_mul_pixel_pt_funcs_c(void)
47{
48 op_mul_pt_funcs[SP][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_p_dp;
49 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pas_dp;
50 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_C] = _op_mul_pt_pan_dp;
51
52 op_mul_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_p_dpan;
53 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pas_dpan;
54 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_C] = _op_mul_pt_pan_dpan;
55}
56#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c
new file mode 100644
index 0000000..3ea6919
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_.c
@@ -0,0 +1,122 @@
1/* mul pixel x color --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_p_c_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 while (d < e) {
8 DATA32 cs = MUL4_SYM(c, *s);
9 *d = MUL4_SYM(cs, *d);
10 s++; d++;
11 }
12}
13
14static void
15_op_mul_p_caa_dp(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
16 DATA32 *e = d + l;
17 c = 1 + (c >> 24);
18 while (d < e)
19 {
20 DATA32 cs = MUL_256(c, *s);
21 *d = MUL4_SYM(cs, *d);
22 s++; d++;
23 }
24}
25
26#define _op_mul_pas_c_dp _op_mul_p_c_dp
27#define _op_mul_pan_c_dp _op_mul_p_c_dp
28#define _op_mul_p_can_dp _op_mul_p_c_dp
29#define _op_mul_pas_can_dp _op_mul_p_c_dp
30#define _op_mul_pan_can_dp _op_mul_p_c_dp
31#define _op_mul_pas_caa_dp _op_mul_p_caa_dp
32#define _op_mul_pan_caa_dp _op_mul_p_caa_dp
33
34#define _op_mul_p_c_dpan _op_mul_p_c_dp
35#define _op_mul_pas_c_dpan _op_mul_pas_c_dp
36#define _op_mul_pan_c_dpan _op_mul_pan_c_dp
37#define _op_mul_p_can_dpan _op_mul_p_can_dp
38#define _op_mul_pas_can_dpan _op_mul_pas_can_dp
39#define _op_mul_pan_can_dpan _op_mul_pan_can_dp
40#define _op_mul_p_caa_dpan _op_mul_p_caa_dp
41#define _op_mul_pas_caa_dpan _op_mul_pas_caa_dp
42#define _op_mul_pan_caa_dpan _op_mul_pan_caa_dp
43
44static void
45init_mul_pixel_color_span_funcs_c(void)
46{
47 op_mul_span_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mul_p_c_dp;
48 op_mul_span_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mul_pas_c_dp;
49 op_mul_span_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mul_pan_c_dp;
50 op_mul_span_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mul_p_can_dp;
51 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mul_pas_can_dp;
52 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_mul_pan_can_dp;
53 op_mul_span_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mul_p_caa_dp;
54 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mul_pas_caa_dp;
55 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mul_pan_caa_dp;
56
57 op_mul_span_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mul_p_c_dpan;
58 op_mul_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mul_pas_c_dpan;
59 op_mul_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mul_pan_c_dpan;
60 op_mul_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_p_can_dpan;
61 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pas_can_dpan;
62 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pan_can_dpan;
63 op_mul_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_p_caa_dpan;
64 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pas_caa_dpan;
65 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pan_caa_dpan;
66}
67#endif
68
69#ifdef BUILD_C
70static void
71_op_mul_pt_p_c_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
72 s = MUL4_SYM(c, s);
73 *d = MUL4_SYM(s, *d);
74}
75
76static void
77_op_mul_pt_p_caa_dp(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
78 s = MUL_SYM(c >> 24, s);
79 *d = MUL4_SYM(s, *d);
80}
81
82#define _op_mul_pt_pas_c_dp _op_mul_pt_p_c_dp
83#define _op_mul_pt_pan_c_dp _op_mul_pt_p_c_dp
84#define _op_mul_pt_p_can_dp _op_mul_pt_p_c_dp
85#define _op_mul_pt_pas_can_dp _op_mul_pt_p_c_dp
86#define _op_mul_pt_pan_can_dp _op_mul_pt_p_c_dp
87#define _op_mul_pt_pas_caa_dp _op_mul_pt_p_caa_dp
88#define _op_mul_pt_pan_caa_dp _op_mul_pt_p_caa_dp
89
90#define _op_mul_pt_p_c_dpan _op_mul_pt_p_c_dp
91#define _op_mul_pt_pan_c_dpan _op_mul_pt_pan_c_dp
92#define _op_mul_pt_pas_c_dpan _op_mul_pt_pas_c_dp
93#define _op_mul_pt_p_can_dpan _op_mul_pt_p_can_dp
94#define _op_mul_pt_pan_can_dpan _op_mul_pt_pan_can_dp
95#define _op_mul_pt_pas_can_dpan _op_mul_pt_pas_can_dp
96#define _op_mul_pt_p_caa_dpan _op_mul_pt_p_caa_dp
97#define _op_mul_pt_pan_caa_dpan _op_mul_pt_pan_caa_dp
98#define _op_mul_pt_pas_caa_dpan _op_mul_pt_pas_caa_dp
99static void
100init_mul_pixel_color_pt_funcs_c(void)
101{
102 op_mul_pt_funcs[SP][SM_N][SC][DP][CPU_C] = _op_mul_pt_p_c_dp;
103 op_mul_pt_funcs[SP_AS][SM_N][SC][DP][CPU_C] = _op_mul_pt_pas_c_dp;
104 op_mul_pt_funcs[SP_AN][SM_N][SC][DP][CPU_C] = _op_mul_pt_pan_c_dp;
105 op_mul_pt_funcs[SP][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_p_can_dp;
106 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_pas_can_dp;
107 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_C] = _op_mul_pt_pan_can_dp;
108 op_mul_pt_funcs[SP][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_p_caa_dp;
109 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_pas_caa_dp;
110 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_C] = _op_mul_pt_pan_caa_dp;
111
112 op_mul_pt_funcs[SP][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_p_c_dpan;
113 op_mul_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_pas_c_dpan;
114 op_mul_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_C] = _op_mul_pt_pan_c_dpan;
115 op_mul_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_p_can_dpan;
116 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_pas_can_dpan;
117 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_C] = _op_mul_pt_pan_can_dpan;
118 op_mul_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_p_caa_dpan;
119 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_pas_caa_dpan;
120 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_C] = _op_mul_pt_pan_caa_dpan;
121}
122#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c
new file mode 100644
index 0000000..24f5a80
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_color_i386.c
@@ -0,0 +1,120 @@
1/* mul pixel x color --> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_mul_p_c_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 MOV_A2R(ALPHA_255, mm5)
8 pxor_r2r(mm0, mm0);
9 MOV_P2R(c, mm2, mm0)
10 while (d < e)
11 {
12 MOV_P2R(*s, mm3, mm0)
13 MUL4_SYM_R2R(mm2, mm3, mm5)
14 MOV_P2R(*d, mm1, mm0)
15 MUL4_SYM_R2R(mm3, mm1, mm5)
16 MOV_R2P(mm1, *d, mm0)
17 s++; d++;
18 }
19}
20
21#define _op_mul_pas_c_dp_mmx _op_mul_p_c_dp_mmx
22#define _op_mul_pan_c_dp_mmx _op_mul_p_c_dp_mmx
23#define _op_mul_p_can_dp_mmx _op_mul_p_c_dp_mmx
24#define _op_mul_pas_can_dp_mmx _op_mul_p_c_dp_mmx
25#define _op_mul_pan_can_dp_mmx _op_mul_p_c_dp_mmx
26#define _op_mul_p_caa_dp_mmx _op_mul_p_c_dp_mmx
27#define _op_mul_pas_caa_dp_mmx _op_mul_p_c_dp_mmx
28#define _op_mul_pan_caa_dp_mmx _op_mul_p_c_dp_mmx
29
30#define _op_mul_p_c_dpan_mmx _op_mul_p_c_dp_mmx
31#define _op_mul_pan_c_dpan_mmx _op_mul_pan_c_dp_mmx
32#define _op_mul_pas_c_dpan_mmx _op_mul_pas_c_dp_mmx
33#define _op_mul_p_can_dpan_mmx _op_mul_p_can_dp_mmx
34#define _op_mul_pan_can_dpan_mmx _op_mul_pan_can_dp_mmx
35#define _op_mul_pas_can_dpan_mmx _op_mul_pas_can_dp_mmx
36#define _op_mul_p_caa_dpan_mmx _op_mul_p_caa_dp_mmx
37#define _op_mul_pan_caa_dpan_mmx _op_mul_pan_caa_dp_mmx
38#define _op_mul_pas_caa_dpan_mmx _op_mul_pas_caa_dp_mmx
39
40static void
41init_mul_pixel_color_span_funcs_mmx(void)
42{
43 op_mul_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_p_c_dp_mmx;
44 op_mul_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pas_c_dp_mmx;
45 op_mul_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pan_c_dp_mmx;
46 op_mul_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_p_can_dp_mmx;
47 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pas_can_dp_mmx;
48 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pan_can_dp_mmx;
49 op_mul_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_p_caa_dp_mmx;
50 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pas_caa_dp_mmx;
51 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pan_caa_dp_mmx;
52
53 op_mul_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_p_c_dpan_mmx;
54 op_mul_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pas_c_dpan_mmx;
55 op_mul_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pan_c_dpan_mmx;
56 op_mul_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_p_can_dpan_mmx;
57 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pas_can_dpan_mmx;
58 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pan_can_dpan_mmx;
59 op_mul_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_p_caa_dpan_mmx;
60 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pas_caa_dpan_mmx;
61 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pan_caa_dpan_mmx;
62}
63#endif
64
65#ifdef BUILD_MMX
66static void
67_op_mul_pt_p_c_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
68 MOV_A2R(ALPHA_255, mm5)
69 pxor_r2r(mm0, mm0);
70 MOV_P2R(c, mm2, mm0)
71 MOV_P2R(s, mm3, mm0)
72 MUL4_SYM_R2R(mm2, mm3, mm5)
73 MOV_P2R(*d, mm1, mm0)
74 MUL4_SYM_R2R(mm3, mm1, mm5)
75 MOV_R2P(mm1, *d, mm0)
76}
77
78#define _op_mul_pt_pas_c_dp_mmx _op_mul_pt_p_c_dp_mmx
79#define _op_mul_pt_pan_c_dp_mmx _op_mul_pt_p_c_dp_mmx
80#define _op_mul_pt_p_can_dp_mmx _op_mul_pt_p_c_dp_mmx
81#define _op_mul_pt_pas_can_dp_mmx _op_mul_pt_p_c_dp_mmx
82#define _op_mul_pt_pan_can_dp_mmx _op_mul_pt_p_c_dp_mmx
83#define _op_mul_pt_p_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
84#define _op_mul_pt_pas_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
85#define _op_mul_pt_pan_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
86
87#define _op_mul_pt_p_c_dpan_mmx _op_mul_pt_p_c_dp_mmx
88#define _op_mul_pt_pan_c_dpan_mmx _op_mul_pt_pan_c_dp_mmx
89#define _op_mul_pt_pas_c_dpan_mmx _op_mul_pt_pas_c_dp_mmx
90#define _op_mul_pt_p_can_dpan_mmx _op_mul_pt_p_can_dp_mmx
91#define _op_mul_pt_pan_can_dpan_mmx _op_mul_pt_pan_can_dp_mmx
92#define _op_mul_pt_pas_can_dpan_mmx _op_mul_pt_pas_can_dp_mmx
93#define _op_mul_pt_p_caa_dpan_mmx _op_mul_pt_p_caa_dp_mmx
94#define _op_mul_pt_pan_caa_dpan_mmx _op_mul_pt_pan_caa_dp_mmx
95#define _op_mul_pt_pas_caa_dpan_mmx _op_mul_pt_pas_caa_dp_mmx
96
97static void
98init_mul_pixel_color_pt_funcs_mmx(void)
99{
100 op_mul_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_p_c_dp_mmx;
101 op_mul_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pas_c_dp_mmx;
102 op_mul_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pan_c_dp_mmx;
103 op_mul_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_p_can_dp_mmx;
104 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pas_can_dp_mmx;
105 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pan_can_dp_mmx;
106 op_mul_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_p_caa_dp_mmx;
107 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pas_caa_dp_mmx;
108 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pan_caa_dp_mmx;
109
110 op_mul_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_p_c_dpan_mmx;
111 op_mul_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pas_c_dpan_mmx;
112 op_mul_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pan_c_dpan_mmx;
113 op_mul_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_p_can_dpan_mmx;
114 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pas_can_dpan_mmx;
115 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pan_can_dpan_mmx;
116 op_mul_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_p_caa_dpan_mmx;
117 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pas_caa_dpan_mmx;
118 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pan_caa_dpan_mmx;
119}
120#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c
new file mode 100644
index 0000000..0db6cd7
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_i386.c
@@ -0,0 +1,66 @@
1/* mul pixel --> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_mul_p_dp_mmx(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
6 DATA32 *e = s + l;
7 pxor_r2r(mm0, mm0);
8 MOV_A2R(ALPHA_255, mm5)
9 for (; s < e; s++, d++) {
10 MOV_P2R(*d, mm1, mm0)
11 MOV_P2R(*s, mm2, mm0)
12 MUL4_SYM_R2R(mm2, mm1, mm5)
13 MOV_R2P(mm1, *d, mm0)
14 }
15}
16
17#define _op_mul_pas_dp_mmx _op_mul_p_dp_mmx
18#define _op_mul_pan_dp_mmx _op_mul_p_dp_mmx
19
20#define _op_mul_p_dpan_mmx _op_mul_p_dp_mmx
21#define _op_mul_pan_dpan_mmx _op_mul_pan_dp_mmx
22#define _op_mul_pas_dpan_mmx _op_mul_pas_dp_mmx
23
24static void
25init_mul_pixel_span_funcs_mmx(void)
26{
27 op_mul_span_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mul_p_dp_mmx;
28 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pan_dp_mmx;
29 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pas_dp_mmx;
30
31 op_mul_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_p_dpan_mmx;
32 op_mul_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pan_dpan_mmx;
33 op_mul_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pas_dpan_mmx;
34}
35#endif
36
37#ifdef BUILD_MMX
38static void
39_op_mul_pt_p_dp_mmx(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
40 pxor_r2r(mm0, mm0);
41 MOV_A2R(ALPHA_255, mm5)
42 MOV_P2R(*d, mm1, mm0)
43 MOV_P2R(s, mm2, mm0)
44 MUL4_SYM_R2R(mm2, mm1, mm5)
45 MOV_R2P(mm1, *d, mm0)
46}
47
48#define _op_mul_pt_pan_dp_mmx _op_mul_pt_p_dp_mmx
49#define _op_mul_pt_pas_dp_mmx _op_mul_pt_p_dp_mmx
50
51#define _op_mul_pt_p_dpan_mmx _op_mul_pt_p_dp_mmx
52#define _op_mul_pt_pan_dpan_mmx _op_mul_pt_pan_dp_mmx
53#define _op_mul_pt_pas_dpan_mmx _op_mul_pt_pas_dp_mmx
54
55static void
56init_mul_pixel_pt_funcs_mmx(void)
57{
58 op_mul_pt_funcs[SP][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_p_dp_mmx;
59 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_pan_dp_mmx;
60 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_MMX] = _op_mul_pt_pas_dp_mmx;
61
62 op_mul_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_p_dpan_mmx;
63 op_mul_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_pan_dpan_mmx;
64 op_mul_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_MMX] = _op_mul_pt_pas_dpan_mmx;
65}
66#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c
new file mode 100644
index 0000000..37d0497
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_.c
@@ -0,0 +1,117 @@
1/* mul pixel x mask --> dst */
2
3#ifdef BUILD_C
4static void
5_op_mul_p_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 while (d < e)
8 {
9 c = *m;
10 switch(c)
11 {
12 case 0:
13 break;
14 case 255:
15 *d = MUL4_SYM(*s, *d);
16 break;
17 default:
18 c = ~(*s);
19 c = ~MUL_SYM(*m, c);
20 *d = MUL4_SYM(c, *d);
21 break;
22 }
23 m++; s++; d++;
24 }
25}
26
27static void
28_op_mul_pan_mas_dp(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
29 DATA32 *e = d + l;
30 while (d < e)
31 {
32 c = *m;
33 switch(c)
34 {
35 case 0:
36 break;
37 case 255:
38 *d = (*d & 0xff000000) + MUL3_SYM(*s, *d);
39 break;
40 default:
41 c = ~(*s);
42 c = ~MUL_SYM(*m, c);
43 *d = (*d & 0xff000000) + MUL3_SYM(c, *d);
44 break;
45 }
46 m++; s++; d++;
47 }
48}
49
50static void
51_op_mul_p_mas_dpan(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
52 DATA32 *e = d + l;
53 while (d < e)
54 {
55 c = *m;
56 switch(c)
57 {
58 case 0:
59 break;
60 case 255:
61 *d = (*s & 0xff000000) + MUL3_SYM(*s, *d);
62 break;
63 default:
64 c = ~(*s);
65 c = ~MUL_SYM(*m, c);
66 *d = (c & 0xff000000) + MUL3_SYM(c, *d);
67 break;
68 }
69 m++; d++;
70 }
71}
72
73#define _op_mul_pas_mas_dp _op_mul_p_mas_dp
74
75#define _op_mul_pan_mas_dpan _op_mul_p_mas_dpan
76#define _op_mul_pas_mas_dpan _op_mul_p_mas_dpan
77
78static void
79init_mul_pixel_mask_span_funcs_c(void)
80{
81 op_mul_span_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mul_p_mas_dp;
82 op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mul_pas_mas_dp;
83 op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_mul_pan_mas_dp;
84
85 op_mul_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_p_mas_dpan;
86 op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pas_mas_dpan;
87 op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pan_mas_dpan;
88}
89#endif
90
91#ifdef BUILD_C
92static void
93_op_mul_pt_p_mas_dp(DATA32 s, DATA8 m, DATA32 c __UNUSED__, DATA32 *d) {
94 s = ~s;
95 s = ~MUL_SYM(m, s);
96 *d = MUL4_SYM(s, *d);
97}
98
99#define _op_mul_pt_pas_mas_dp _op_mul_pt_p_mas_dp
100#define _op_mul_pt_pan_mas_dp _op_mul_pt_p_mas_dp
101
102#define _op_mul_pt_p_mas_dpan _op_mul_pt_p_mas_dp
103#define _op_mul_pt_pas_mas_dpan _op_mul_pt_p_mas_dp
104#define _op_mul_pt_pan_mas_dpan _op_mul_pt_p_mas_dp
105
106static void
107init_mul_pixel_mask_pt_funcs_c(void)
108{
109 op_mul_pt_funcs[SP][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_p_mas_dp;
110 op_mul_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_pas_mas_dp;
111 op_mul_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_C] = _op_mul_pt_pan_mas_dp;
112
113 op_mul_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_p_mas_dpan;
114 op_mul_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_pas_mas_dpan;
115 op_mul_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_C] = _op_mul_pt_pan_mas_dpan;
116}
117#endif
diff --git a/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c
new file mode 100644
index 0000000..ebbac01
--- /dev/null
+++ b/libraries/evas/src/lib/engines/common/evas_op_mul/op_mul_pixel_mask_i386.c
@@ -0,0 +1,63 @@
1/* mul pixel x mask --> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_mul_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
6 DATA32 *e = d + l;
7 MOV_A2R(ALPHA_255, mm5)
8 pxor_r2r(mm0, mm0);
9 while (d < e) {
10 c = *m;
11 switch(c)
12 {
13 case 0:
14 break;
15 case 255:
16 MOV_P2R(*d, mm1, mm0)
17 MOV_P2R(*s, mm2, mm0)
18 MUL4_SYM_R2R(mm2, mm1, mm5)
19 MOV_R2P(mm1, *d, mm0)
20 break;
21 default:
22 c++;
23 MOV_A2R(c, mm1)
24 c = ~(*s);
25 MOV_P2R(c, mm3, mm0)
26 MUL4_256_R2R(mm3, mm1)
27 movq_r2r(mm5, mm4);
28 psubw_r2r(mm1, mm4);
29 MOV_P2R(*d, mm1, mm0)
30 MUL4_SYM_R2R(mm4, mm1, mm5)
31 MOV_R2P(mm1, *d, mm0)
32 break;
33 }
34 s++; m++; d++;
35 }
36}
37
38#define _op_mul_pas_mas_dp_mmx _op_mul_p_mas_dp_mmx
39#define _op_mul_pan_mas_dp_mmx _op_mul_p_mas_dp_mmx
40
41#define _op_mul_p_mas_dpan_mmx _op_mul_p_mas_dp_mmx
42#define _op_mul_pas_mas_dpan_mmx _op_mul_pas_mas_dp_mmx
43#define _op_mul_pan_mas_dpan_mmx _op_mul_pan_mas_dp_mmx
44
45static void
46init_mul_pixel_mask_span_funcs_mmx(void)
47{
48 op_mul_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_p_mas_dp_mmx;
49 op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_pas_mas_dp_mmx;
50 op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_mul_pan_mas_dp_mmx;
51
52 op_mul_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_p_mas_dpan_mmx;
53 op_mul_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_pas_mas_dpan_mmx;
54 op_mul_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_mul_pan_mas_dpan_mmx;
55}
56#endif
57
58#ifdef BUILD_MMX
59static void
60init_mul_pixel_mask_pt_funcs_mmx(void)
61{
62}
63#endif