2 /* copy mask x color -> dst */
6 _op_copy_mas_c_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
10 MOV_A2R(ALPHA_255, mm5)
26 INTERP_256_R2R(mm3, mm4, mm1, mm5);
35 #define _op_copy_mas_cn_dp_mmx _op_copy_mas_c_dp_mmx
36 #define _op_copy_mas_can_dp_mmx _op_copy_mas_c_dp_mmx
37 #define _op_copy_mas_caa_dp_mmx _op_copy_mas_c_dp_mmx
39 #define _op_copy_mas_c_dpan_mmx _op_copy_mas_c_dp_mmx
40 #define _op_copy_mas_cn_dpan_mmx _op_copy_mas_c_dpan_mmx
41 #define _op_copy_mas_can_dpan_mmx _op_copy_mas_c_dpan_mmx
42 #define _op_copy_mas_caa_dpan_mmx _op_copy_mas_c_dpan_mmx
45 init_copy_mask_color_span_funcs_mmx(void)
47 op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_mas_cn_dp_mmx;
48 op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_mas_c_dp_mmx;
49 op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_mas_can_dp_mmx;
50 op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_mas_caa_dp_mmx;
52 op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_mas_cn_dpan_mmx;
53 op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_mas_c_dpan_mmx;
54 op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_mas_can_dpan_mmx;
55 op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_mas_caa_dpan_mmx;
61 _op_copy_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
63 MOV_A2R(ALPHA_255, mm5)
68 INTERP_256_R2R(mm3, mm2, mm1, mm5);
72 #define _op_copy_pt_mas_cn_dp_mmx _op_copy_pt_mas_c_dp_mmx
73 #define _op_copy_pt_mas_can_dp_mmx _op_copy_pt_mas_c_dp_mmx
74 #define _op_copy_pt_mas_caa_dp_mmx _op_copy_pt_mas_c_dp_mmx
76 #define _op_copy_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dp_mmx
77 #define _op_copy_pt_mas_cn_dpan_mmx _op_copy_pt_mas_c_dpan_mmx
78 #define _op_copy_pt_mas_can_dpan_mmx _op_copy_pt_mas_c_dpan_mmx
79 #define _op_copy_pt_mas_caa_dpan_mmx _op_copy_pt_mas_c_dpan_mmx
82 init_copy_mask_color_pt_funcs_mmx(void)
84 op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_mas_cn_dp_mmx;
85 op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_pt_mas_c_dp_mmx;
86 op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_pt_mas_can_dp_mmx;
87 op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_pt_mas_caa_dp_mmx;
89 op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_mas_cn_dpan_mmx;
90 op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_pt_mas_c_dpan_mmx;
91 op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_pt_mas_can_dpan_mmx;
92 op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_pt_mas_caa_dpan_mmx;
98 /* copy_rel mask x color -> dst */
102 _op_copy_rel_mas_c_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
106 MOV_A2R(ALPHA_255, mm5)
116 MUL4_256_R2R(mm2, mm1)
117 MOV_R2P(mm1, *d, mm0)
122 MOV_P2R(*d, mm1, mm0)
124 MUL4_256_R2R(mm2, mm4)
125 INTERP_256_R2R(mm3, mm4, mm1, mm5)
126 MOV_R2P(mm1, *d, mm0)
133 #define _op_copy_rel_mas_cn_dp_mmx _op_copy_rel_mas_c_dp_mmx
134 #define _op_copy_rel_mas_can_dp_mmx _op_copy_rel_mas_c_dp_mmx
135 #define _op_copy_rel_mas_caa_dp_mmx _op_copy_rel_mas_c_dp_mmx
137 #define _op_copy_rel_mas_c_dpan_mmx _op_copy_mas_c_dpan_mmx
138 #define _op_copy_rel_mas_cn_dpan_mmx _op_copy_mas_cn_dpan_mmx
139 #define _op_copy_rel_mas_can_dpan_mmx _op_copy_mas_can_dpan_mmx
140 #define _op_copy_rel_mas_caa_dpan_mmx _op_copy_mas_caa_dpan_mmx
143 init_copy_rel_mask_color_span_funcs_mmx(void)
145 op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_mas_cn_dp_mmx;
146 op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_mas_c_dp_mmx;
147 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_mas_can_dp_mmx;
148 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_mas_caa_dp_mmx;
150 op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_mas_cn_dpan_mmx;
151 op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_mas_c_dpan_mmx;
152 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_mas_can_dpan_mmx;
153 op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_mas_caa_dpan_mmx;
159 _op_copy_rel_pt_mas_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
161 MOV_A2R(ALPHA_255, mm5)
164 MOV_P2R(*d, mm1, mm0)
167 MUL4_256_R2R(mm2, mm4)
168 INTERP_256_R2R(mm3, mm4, mm1, mm5)
169 MOV_R2P(mm1, *d, mm0)
172 #define _op_copy_rel_pt_mas_cn_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx
173 #define _op_copy_rel_pt_mas_can_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx
174 #define _op_copy_rel_pt_mas_caa_dp_mmx _op_copy_rel_pt_mas_c_dp_mmx
176 #define _op_copy_rel_pt_mas_c_dpan_mmx _op_copy_pt_mas_c_dpan_mmx
177 #define _op_copy_rel_pt_mas_cn_dpan_mmx _op_copy_pt_mas_cn_dpan_mmx
178 #define _op_copy_rel_pt_mas_can_dpan_mmx _op_copy_pt_mas_can_dpan_mmx
179 #define _op_copy_rel_pt_mas_caa_dpan_mmx _op_copy_pt_mas_caa_dpan_mmx
182 init_copy_rel_mask_color_pt_funcs_mmx(void)
184 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_mas_cn_dp_mmx;
185 op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_MMX] = _op_copy_rel_pt_mas_c_dp_mmx;
186 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_MMX] = _op_copy_rel_pt_mas_can_dp_mmx;
187 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_MMX] = _op_copy_rel_pt_mas_caa_dp_mmx;
189 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_cn_dpan_mmx;
190 op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_c_dpan_mmx;
191 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_can_dpan_mmx;
192 op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_MMX] = _op_copy_rel_pt_mas_caa_dpan_mmx;