aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c138
1 files changed, 0 insertions, 138 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c
deleted file mode 100644
index a05af7d..0000000
--- a/libraries/evas/src/lib/engines/common/evas_op_blend/op_blend_color_i386.c
+++ /dev/null
@@ -1,138 +0,0 @@
1/* blend color --> dst */
2
3#ifdef BUILD_MMX
4static void
5_op_blend_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_P2R(c, mm2, mm0)
9 c = 256 - (c >> 24);
10 MOV_A2R(c, mm3)
11 while (d < e) {
12 MOV_P2R(*d, mm1, mm0)
13 MUL4_256_R2R(mm3, mm1)
14 paddw_r2r(mm2, mm1);
15 MOV_R2P(mm1, *d, mm0)
16 d++;
17 }
18}
19
20#define _op_blend_caa_dp_mmx _op_blend_c_dp_mmx
21
22#define _op_blend_c_dpan_mmx _op_blend_c_dp_mmx
23#define _op_blend_caa_dpan_mmx _op_blend_c_dpan_mmx
24
25static void
26init_blend_color_span_funcs_mmx(void)
27{
28 op_blend_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_c_dp_mmx;
29 op_blend_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_caa_dp_mmx;
30
31 op_blend_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_c_dpan_mmx;
32 op_blend_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_caa_dpan_mmx;
33}
34#endif
35
36#ifdef BUILD_MMX
37static void
38_op_blend_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
39 pxor_r2r(mm0, mm0);
40 MOV_P2R(c, mm2, mm0)
41 c = 256 - (c >> 24);
42 MOV_A2R(c, mm3)
43 MOV_P2R(*d, mm1, mm0)
44 MUL4_256_R2R(mm3, mm1)
45 paddw_r2r(mm2, mm1);
46 MOV_R2P(mm1, *d, mm0)
47}
48
49#define _op_blend_pt_caa_dp_mmx _op_blend_pt_c_dp_mmx
50
51#define _op_blend_pt_c_dpan_mmx _op_blend_pt_c_dp_mmx
52#define _op_blend_pt_caa_dpan_mmx _op_blend_pt_c_dpan_mmx
53
54static void
55init_blend_color_pt_funcs_mmx(void)
56{
57 op_blend_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_pt_c_dp_mmx;
58 op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_pt_caa_dp_mmx;
59
60 op_blend_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_pt_c_dpan_mmx;
61 op_blend_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_pt_caa_dpan_mmx;
62}
63#endif
64/*-----*/
65
66/* blend_rel color -> dst */
67
68#ifdef BUILD_MMX
69static void
70_op_blend_rel_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
71 DATA32 *e = d + l;
72 pxor_r2r(mm0, mm0);
73 MOV_P2R(c, mm2, mm0)
74 c = 256 - (c >> 24);
75 MOV_A2R(c, mm3)
76 MOV_A2R(ALPHA_255, mm5)
77 while (d < e) {
78 MOV_P2R(*d, mm1, mm0)
79 MOV_RA2R(mm1, mm4)
80 MUL4_256_R2R(mm3, mm1)
81 MUL4_SYM_R2R(mm2, mm4, mm5)
82 paddw_r2r(mm4, mm1);
83 MOV_R2P(mm1, *d, mm0)
84 d++;
85 }
86}
87
88#define _op_blend_rel_caa_dp_mmx _op_blend_rel_c_dp_mmx
89
90#define _op_blend_rel_c_dpan_mmx _op_blend_c_dpan_mmx
91#define _op_blend_rel_caa_dpan_mmx _op_blend_caa_dpan_mmx
92
93static void
94init_blend_rel_color_span_funcs_mmx(void)
95{
96 op_blend_rel_span_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_rel_c_dp_mmx;
97 op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_rel_caa_dp_mmx;
98
99 op_blend_rel_span_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_c_dpan_mmx;
100 op_blend_rel_span_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_caa_dpan_mmx;
101}
102#endif
103
104#ifdef BUILD_MMX
105static void
106_op_blend_rel_pt_c_dp_mmx(DATA32 s __UNUSED__, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
107 pxor_r2r(mm0, mm0);
108 MOV_A2R(ALPHA_256, mm6)
109 MOV_A2R(ALPHA_255, mm5)
110
111 MOV_P2R(c, mm2, mm0)
112 MOV_RA2R(mm2, mm1)
113 psubw_r2r(mm1, mm6);
114
115 MOV_P2R(*d, mm1, mm0)
116 MOV_RA2R(mm1, mm4)
117 MUL4_256_R2R(mm6, mm1)
118
119 MUL4_SYM_R2R(mm4, mm2, mm5)
120 paddw_r2r(mm2, mm1);
121 MOV_R2P(mm1, *d, mm0)
122}
123
124#define _op_blend_rel_pt_caa_dp_mmx _op_blend_rel_pt_c_dp_mmx
125
126#define _op_blend_rel_pt_c_dpan_mmx _op_blend_pt_c_dpan_mmx
127#define _op_blend_rel_pt_caa_dpan_mmx _op_blend_pt_caa_dpan_mmx
128
129static void
130init_blend_rel_color_pt_funcs_mmx(void)
131{
132 op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP][CPU_MMX] = _op_blend_rel_pt_c_dp_mmx;
133 op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP][CPU_MMX] = _op_blend_rel_pt_caa_dp_mmx;
134
135 op_blend_rel_pt_funcs[SP_N][SM_N][SC][DP_AN][CPU_MMX] = _op_blend_rel_pt_c_dpan_mmx;
136 op_blend_rel_pt_funcs[SP_N][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_blend_rel_pt_caa_dpan_mmx;
137}
138#endif