2 /* copy pixel x color --> dst */
6 _op_copy_p_c_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
10 MOV_A2R(ALPHA_255, mm5)
13 MUL4_SYM_R2R(mm3, mm2, mm5);
21 _op_copy_p_caa_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
28 MUL4_256_R2R(mm3, mm2);
35 #define _op_copy_pas_c_dp_mmx _op_copy_p_c_dp_mmx
36 #define _op_copy_pan_c_dp_mmx _op_copy_p_c_dp_mmx
37 #define _op_copy_p_can_dp_mmx _op_copy_p_c_dp_mmx
38 #define _op_copy_pas_can_dp_mmx _op_copy_pas_c_dp_mmx
39 #define _op_copy_pan_can_dp_mmx _op_copy_pan_c_dp_mmx
40 #define _op_copy_pas_caa_dp_mmx _op_copy_p_caa_dp_mmx
41 #define _op_copy_pan_caa_dp_mmx _op_copy_p_caa_dp_mmx
43 #define _op_copy_p_c_dpan_mmx _op_copy_p_c_dp_mmx
44 #define _op_copy_pas_c_dpan_mmx _op_copy_pas_c_dp_mmx
45 #define _op_copy_pan_c_dpan_mmx _op_copy_pan_c_dp_mmx
46 #define _op_copy_p_can_dpan_mmx _op_copy_p_can_dp_mmx
47 #define _op_copy_pas_can_dpan_mmx _op_copy_pas_can_dp_mmx
48 #define _op_copy_pan_can_dpan_mmx _op_copy_pan_can_dp_mmx
49 #define _op_copy_p_caa_dpan_mmx _op_copy_p_caa_dp_mmx
50 #define _op_copy_pas_caa_dpan_mmx _op_copy_pas_caa_dp_mmx
51 #define _op_copy_pan_caa_dpan_mmx _op_copy_pan_caa_dp_mmx
54 init_copy_pixel_color_span_funcs_mmx(void)
56 op_copy_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_p_c_dp_mmx;
57 op_copy_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_pas_c_dp_mmx;
58 op_copy_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_pan_c_dp_mmx;
59 op_copy_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_p_can_dp_mmx;
60 op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pas_can_dp_mmx;
61 op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pan_can_dp_mmx;
62 op_copy_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_p_caa_dp_mmx;
63 op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pas_caa_dp_mmx;
64 op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pan_caa_dp_mmx;
66 op_copy_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_p_c_dpan_mmx;
67 op_copy_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pas_c_dpan_mmx;
68 op_copy_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pan_c_dpan_mmx;
69 op_copy_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_p_can_dpan_mmx;
70 op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pas_can_dpan_mmx;
71 op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pan_can_dpan_mmx;
72 op_copy_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_p_caa_dpan_mmx;
73 op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pas_caa_dpan_mmx;
74 op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pan_caa_dpan_mmx;
80 _op_copy_pt_p_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
82 MOV_A2R(ALPHA_255, mm5)
85 MUL4_SYM_R2R(mm3, mm2, mm5);
89 #define _op_copy_pt_pas_c_dp_mmx _op_copy_pt_p_c_dp_mmx
90 #define _op_copy_pt_pan_c_dp_mmx _op_copy_pt_p_c_dp_mmx
91 #define _op_copy_pt_p_can_dp_mmx _op_copy_pt_p_c_dp_mmx
92 #define _op_copy_pt_pas_can_dp_mmx _op_copy_pt_p_c_dp_mmx
93 #define _op_copy_pt_pan_can_dp_mmx _op_copy_pt_p_c_dp_mmx
94 #define _op_copy_pt_p_caa_dp_mmx _op_copy_pt_p_c_dp_mmx
95 #define _op_copy_pt_pas_caa_dp_mmx _op_copy_pt_p_c_dp_mmx
96 #define _op_copy_pt_pan_caa_dp_mmx _op_copy_pt_p_c_dp_mmx
98 #define _op_copy_pt_p_c_dpan_mmx _op_copy_pt_p_c_dp_mmx
99 #define _op_copy_pt_pas_c_dpan_mmx _op_copy_pt_pas_c_dp_mmx
100 #define _op_copy_pt_pan_c_dpan_mmx _op_copy_pt_pan_c_dp_mmx
101 #define _op_copy_pt_p_can_dpan_mmx _op_copy_pt_p_can_dp_mmx
102 #define _op_copy_pt_pas_can_dpan_mmx _op_copy_pt_pas_can_dp_mmx
103 #define _op_copy_pt_pan_can_dpan_mmx _op_copy_pt_pan_can_dp_mmx
104 #define _op_copy_pt_p_caa_dpan_mmx _op_copy_pt_p_caa_dp_mmx
105 #define _op_copy_pt_pas_caa_dpan_mmx _op_copy_pt_pas_caa_dp_mmx
106 #define _op_copy_pt_pan_caa_dpan_mmx _op_copy_pt_pan_caa_dp_mmx
109 init_copy_pixel_color_pt_funcs_mmx(void)
111 op_copy_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_p_c_dp_mmx;
112 op_copy_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_pas_c_dp_mmx;
113 op_copy_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_pt_pan_c_dp_mmx;
114 op_copy_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_p_can_dp_mmx;
115 op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_pas_can_dp_mmx;
116 op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_pt_pan_can_dp_mmx;
117 op_copy_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_p_caa_dp_mmx;
118 op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_pas_caa_dp_mmx;
119 op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_pt_pan_caa_dp_mmx;
121 op_copy_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_p_c_dpan_mmx;
122 op_copy_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_pas_c_dpan_mmx;
123 op_copy_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_pt_pan_c_dpan_mmx;
124 op_copy_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_p_can_dpan_mmx;
125 op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_pas_can_dpan_mmx;
126 op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_pan_can_dpan_mmx;
127 op_copy_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_p_caa_dpan_mmx;
128 op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_pas_caa_dpan_mmx;
129 op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_pan_caa_dpan_mmx;
135 /* copy_rel pixel x color --> dst */
139 _op_copy_rel_p_c_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
143 MOV_A2R(ALPHA_255, mm5)
146 MOV_P2R(*s, mm2, mm0)
147 MUL4_SYM_R2R(mm3, mm2, mm5);
148 MUL4_SYM_R2R(mm2, mm1, mm5);
149 MOV_R2P(mm1, *d, mm0)
155 #define _op_copy_rel_pas_c_dp_mmx _op_copy_rel_p_c_dp_mmx
156 #define _op_copy_rel_pan_c_dp_mmx _op_copy_rel_p_c_dp_mmx
157 #define _op_copy_rel_p_can_dp_mmx _op_copy_rel_p_c_dp_mmx
158 #define _op_copy_rel_pas_can_dp_mmx _op_copy_rel_p_c_dp_mmx
159 #define _op_copy_rel_pan_can_dp_mmx _op_copy_rel_p_c_dp_mmx
160 #define _op_copy_rel_p_caa_dp_mmx _op_copy_rel_p_c_dp_mmx
161 #define _op_copy_rel_pas_caa_dp_mmx _op_copy_rel_p_c_dp_mmx
162 #define _op_copy_rel_pan_caa_dp_mmx _op_copy_rel_p_c_dp_mmx
164 #define _op_copy_rel_p_c_dpan_mmx _op_copy_p_c_dpan_mmx
165 #define _op_copy_rel_pas_c_dpan_mmx _op_copy_pas_c_dpan_mmx
166 #define _op_copy_rel_pan_c_dpan_mmx _op_copy_pan_c_dpan_mmx
167 #define _op_copy_rel_p_can_dpan_mmx _op_copy_p_can_dpan_mmx
168 #define _op_copy_rel_pas_can_dpan_mmx _op_copy_pas_can_dpan_mmx
169 #define _op_copy_rel_pan_can_dpan_mmx _op_copy_pan_can_dpan_mmx
170 #define _op_copy_rel_p_caa_dpan_mmx _op_copy_p_caa_dpan_mmx
171 #define _op_copy_rel_pas_caa_dpan_mmx _op_copy_pas_caa_dpan_mmx
172 #define _op_copy_rel_pan_caa_dpan_mmx _op_copy_pan_caa_dpan_mmx
175 init_copy_rel_pixel_color_span_funcs_mmx(void)
177 op_copy_rel_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_p_c_dp_mmx;
178 op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pas_c_dp_mmx;
179 op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pan_c_dp_mmx;
180 op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_p_can_dp_mmx;
181 op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pas_can_dp_mmx;
182 op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pan_can_dp_mmx;
183 op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_p_caa_dp_mmx;
184 op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pas_caa_dp_mmx;
185 op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pan_caa_dp_mmx;
187 op_copy_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_p_c_dpan_mmx;
188 op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pas_c_dpan_mmx;
189 op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pan_c_dpan_mmx;
190 op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_p_can_dpan_mmx;
191 op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pas_can_dpan_mmx;
192 op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pan_can_dpan_mmx;
193 op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_p_caa_dpan_mmx;
194 op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pas_caa_dpan_mmx;
195 op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pan_caa_dpan_mmx;
201 _op_copy_rel_pt_p_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
204 MOV_A2R(ALPHA_255, mm5)
207 MUL4_SYM_R2R(mm3, mm2, mm5);
208 MUL4_SYM_R2R(mm2, mm1, mm5);
209 MOV_R2P(mm1, *d, mm0)
213 #define _op_copy_rel_pt_pas_c_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
214 #define _op_copy_rel_pt_pan_c_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
215 #define _op_copy_rel_pt_p_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
216 #define _op_copy_rel_pt_pas_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
217 #define _op_copy_rel_pt_pan_can_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
218 #define _op_copy_rel_pt_p_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
219 #define _op_copy_rel_pt_pas_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
220 #define _op_copy_rel_pt_pan_caa_dp_mmx _op_copy_rel_pt_p_c_dp_mmx
222 #define _op_copy_rel_pt_p_c_dpan_mmx _op_copy_pt_p_c_dpan_mmx
223 #define _op_copy_rel_pt_pas_c_dpan_mmx _op_copy_pt_pas_c_dpan_mmx
224 #define _op_copy_rel_pt_pan_c_dpan_mmx _op_copy_pt_pan_c_dpan_mmx
225 #define _op_copy_rel_pt_p_can_dpan_mmx _op_copy_pt_p_can_dpan_mmx
226 #define _op_copy_rel_pt_pas_can_dpan_mmx _op_copy_pt_pas_can_dpan_mmx
227 #define _op_copy_rel_pt_pan_can_dpan_mmx _op_copy_pt_pan_can_dpan_mmx
228 #define _op_copy_rel_pt_p_caa_dpan_mmx _op_copy_pt_p_caa_dpan_mmx
229 #define _op_copy_rel_pt_pas_caa_dpan_mmx _op_copy_pt_pas_caa_dpan_mmx
230 #define _op_copy_rel_pt_pan_caa_dpan_mmx _op_copy_pt_pan_caa_dpan_mmx
234 init_copy_rel_pixel_color_pt_funcs_mmx(void)
236 op_copy_rel_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_p_c_dp_mmx;
237 op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_pas_c_dp_mmx;
238 op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_copy_rel_pt_pan_c_dp_mmx;
239 op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_p_can_dp_mmx;
240 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_pas_can_dp_mmx;
241 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_pan_can_dp_mmx;
242 op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_p_caa_dp_mmx;
243 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_pas_caa_dp_mmx;
244 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_pan_caa_dp_mmx;
246 op_copy_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_c_dpan_mmx;
247 op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_c_dpan_mmx;
248 op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_c_dpan_mmx;
249 op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_can_dpan_mmx;
250 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_can_dpan_mmx;
251 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_can_dpan_mmx;
252 op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_caa_dpan_mmx;
253 op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_caa_dpan_mmx;
254 op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_caa_dpan_mmx;