diff options
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c')
-rw-r--r-- | libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c b/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c deleted file mode 100644 index e27493f..0000000 --- a/libraries/evas/src/lib/engines/common/evas_op_copy/op_copy_mask_color_i386.c +++ /dev/null | |||
@@ -1,193 +0,0 @@ | |||
1 | /* copy mask x color -> dst */ | ||
2 | |||
3 | #ifdef BUILD_MMX | ||
4 | static void | ||
5 | _op_copy_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { | ||
6 | DATA32 *e = d + l; | ||
7 | pxor_r2r(mm0, mm0); | ||
8 | MOV_P2R(c, mm2, mm0) | ||
9 | MOV_A2R(ALPHA_255, mm5) | ||
10 | while (d < e) { | ||
11 | l = *m; | ||
12 | switch(l) | ||
13 | { | ||
14 | case 0: | ||
15 | break; | ||
16 | case 255: | ||
17 | *d = c; | ||
18 | break; | ||
19 | default: | ||
20 | { | ||
21 | l++; | ||
22 | MOV_A2R(l, mm3) | ||
23 | MOV_P2R(*d, mm1, mm0) | ||
24 | movq_r2r(mm2, mm4); | ||
25 | INTERP_256_R2R(mm3, mm4, mm1, mm5); | ||
26 | MOV_R2P(mm1, *d, mm0) | ||
27 | } | ||
28 | break; | ||
29 | } | ||
30 | m++; d++; | ||
31 | } | ||
32 | } | ||
33 | |||
34 | #define _op_copy_mas_cn_dp_mmx _op_copy_mas_c_dp_mmx | ||
35 | #define _op_copy_mas_can_dp_mmx _op_copy_mas_c_dp_mmx | ||
36 | #define _op_copy_mas_caa_dp_mmx _op_copy_mas_c_dp_mmx | ||
37 | |||
38 | #define _op_copy_mas_c_dpan_mmx _op_copy_mas_c_dp_mmx | ||
39 | #define _op_copy_mas_cn_dpan_mmx _op_copy_mas_c_dpan_mmx | ||
40 | #define _op_copy_mas_can_dpan_mmx _op_copy_mas_c_dpan_mmx | ||
41 | #define _op_copy_mas_caa_dpan_mmx _op_copy_mas_c_dpan_mmx | ||
42 | |||
43 | static void | ||
44 | init_copy_mask_color_span_funcs_mmx(void) | ||
45 | { | ||
46 | op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_mas_cn_dp_mmx; | ||
47 | op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_mas_c_dp_mmx; | ||
48 | op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_mas_can_dp_mmx; | ||
49 | op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_mas_caa_dp_mmx; | ||
50 | |||
51 | op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_mas_cn_dpan_mmx; | ||
52 | op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_mas_c_dpan_mmx; | ||
53 | op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_mas_can_dpan_mmx; | ||
54 | op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_mas_caa_dpan_mmx; | ||
55 | } | ||
56 | #endif | ||
57 | |||
58 | #ifdef BUILD_MMX | ||
59 | static void | ||
60 | _op_copy_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { | ||
61 | s = m + 1; | ||
62 | MOV_A2R(ALPHA_255, mm5) | ||
63 | pxor_r2r(mm0, mm0); | ||
64 | MOV_P2R(c, mm2, mm0) | ||
65 | MOV_A2R(s, mm3) | ||
66 | MOV_P2R(*d, mm1, mm0) | ||
67 | INTERP_256_R2R(mm3, mm2, mm1, mm5); | ||
68 | MOV_R2P(mm1, *d, mm0) | ||
69 | } | ||
70 | |||
71 | #define _op_copy_pt_mas_cn_dp_mmx _op_copy_pt_mas_c_dp_mmx | ||
72 | #define _op_copy_pt_mas_can_dp_mmx _op_copy_pt_mas_c_dp_mmx | ||
73 | #define _op_copy_pt_mas_caa_dp_mmx _op_copy_pt_mas_c_dp_mmx | ||
74 | |||
75 | #define _op_copy_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dp_mmx | ||
76 | #define _op_copy_pt_mas_cn_dpan_mmx _op_copy_pt_mas_c_dpan_mmx | ||
77 | #define _op_copy_pt_mas_can_dpan_mmx _op_copy_pt_mas_c_dpan_mmx | ||
78 | #define _op_copy_pt_mas_caa_dpan_mmx _op_copy_pt_mas_c_dpan_mmx | ||
79 | |||
80 | static void | ||
81 | init_copy_mask_color_pt_funcs_mmx(void) | ||
82 | { | ||
83 | op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_mas_cn_dp_mmx; | ||
84 | op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_pt_mas_c_dp_mmx; | ||
85 | op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_pt_mas_can_dp_mmx; | ||
86 | op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_pt_mas_caa_dp_mmx; | ||
87 | |||
88 | op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_mas_cn_dpan_mmx; | ||
89 | op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_pt_mas_c_dpan_mmx; | ||
90 | op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_mas_can_dpan_mmx; | ||
91 | op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_mas_caa_dpan_mmx; | ||
92 | } | ||
93 | #endif | ||
94 | |||
95 | /*-----*/ | ||
96 | |||
97 | /* copy_rel mask x color -> dst */ | ||
98 | |||
99 | #ifdef BUILD_MMX | ||
100 | static void | ||
101 | _op_copy_rel_mas_c_dp_mmx(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) { | ||
102 | DATA32 *e = d + l; | ||
103 | pxor_r2r(mm0, mm0); | ||
104 | MOV_P2R(c, mm2, mm0) | ||
105 | MOV_A2R(ALPHA_255, mm5) | ||
106 | while (d < e) { | ||
107 | l = *m; | ||
108 | switch(l) | ||
109 | { | ||
110 | case 0: | ||
111 | break; | ||
112 | case 255: | ||
113 | l = 1 + (*d >> 24); | ||
114 | MOV_A2R(l, mm1) | ||
115 | MUL4_256_R2R(mm2, mm1) | ||
116 | MOV_R2P(mm1, *d, mm0) | ||
117 | break; | ||
118 | default: | ||
119 | l++; | ||
120 | MOV_A2R(l, mm3) | ||
121 | MOV_P2R(*d, mm1, mm0) | ||
122 | MOV_RA2R(mm1, mm4) | ||
123 | MUL4_256_R2R(mm2, mm4) | ||
124 | INTERP_256_R2R(mm3, mm4, mm1, mm5) | ||
125 | MOV_R2P(mm1, *d, mm0) | ||
126 | break; | ||
127 | } | ||
128 | m++; d++; | ||
129 | } | ||
130 | } | ||
131 | |||
132 | #define _op_copy_rel_mas_cn_dp_mmx _op_copy_rel_mas_c_dp_mmx | ||
133 | #define _op_copy_rel_mas_can_dp_mmx _op_copy_rel_mas_c_dp_mmx | ||
134 | #define _op_copy_rel_mas_caa_dp_mmx _op_copy_rel_mas_c_dp_mmx | ||
135 | |||
136 | #define _op_copy_rel_mas_c_dpan_mmx _op_copy_mas_c_dpan_mmx | ||
137 | #define _op_copy_rel_mas_cn_dpan_mmx _op_copy_mas_cn_dpan_mmx | ||
138 | #define _op_copy_rel_mas_can_dpan_mmx _op_copy_mas_can_dpan_mmx | ||
139 | #define _op_copy_rel_mas_caa_dpan_mmx _op_copy_mas_caa_dpan_mmx | ||
140 | |||
141 | static void | ||
142 | init_copy_rel_mask_color_span_funcs_mmx(void) | ||
143 | { | ||
144 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_mas_cn_dp_mmx; | ||
145 | op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_mas_c_dp_mmx; | ||
146 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_mas_can_dp_mmx; | ||
147 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_mas_caa_dp_mmx; | ||
148 | |||
149 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_mas_cn_dpan_mmx; | ||
150 | op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_mas_c_dpan_mmx; | ||
151 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_mas_can_dpan_mmx; | ||
152 | op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_mas_caa_dpan_mmx; | ||
153 | } | ||
154 | #endif | ||
155 | |||
156 | #ifdef BUILD_MMX | ||
157 | static void | ||
158 | _op_copy_rel_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) { | ||
159 | s = m + 1; | ||
160 | MOV_A2R(ALPHA_255, mm5) | ||
161 | pxor_r2r(mm0, mm0); | ||
162 | MOV_A2R(s, mm3) | ||
163 | MOV_P2R(*d, mm1, mm0) | ||
164 | MOV_RA2R(mm1, mm4) | ||
165 | MOV_P2R(c, mm2, mm0) | ||
166 | MUL4_256_R2R(mm2, mm4) | ||
167 | INTERP_256_R2R(mm3, mm4, mm1, mm5) | ||
168 | MOV_R2P(mm1, *d, mm0) | ||
169 | } | ||
170 | |||
171 | #define _op_copy_rel_pt_mas_cn_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx | ||
172 | #define _op_copy_rel_pt_mas_can_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx | ||
173 | #define _op_copy_rel_pt_mas_caa_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx | ||
174 | |||
175 | #define _op_copy_rel_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dpan_mmx | ||
176 | #define _op_copy_rel_pt_mas_cn_dpan_mmx _op_copy_pt_mas_cn_dpan_mmx | ||
177 | #define _op_copy_rel_pt_mas_can_dpan_mmx _op_copy_pt_mas_can_dpan_mmx | ||
178 | #define _op_copy_rel_pt_mas_caa_dpan_mmx _op_copy_pt_mas_caa_dpan_mmx | ||
179 | |||
180 | static void | ||
181 | init_copy_rel_mask_color_pt_funcs_mmx(void) | ||
182 | { | ||
183 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_mas_cn_dp_mmx; | ||
184 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_pt_mas_c_dp_mmx; | ||
185 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_mas_can_dp_mmx; | ||
186 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_mas_caa_dp_mmx; | ||
187 | |||
188 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_cn_dpan_mmx; | ||
189 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_c_dpan_mmx; | ||
190 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_can_dpan_mmx; | ||
191 | op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_caa_dpan_mmx; | ||
192 | } | ||
193 | #endif | ||