2 /* copy pixel x mask --> dst */
6 _op_copy_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
9 MOV_A2R(ALPHA_255, mm5)
24 INTERP_256_R2R(mm3, mm2, mm1, mm5);
32 #define _op_copy_pan_mas_dp_mmx _op_copy_p_mas_dp_mmx
33 #define _op_copy_pas_mas_dp_mmx _op_copy_p_mas_dp_mmx
35 #define _op_copy_p_mas_dpan_mmx _op_copy_p_mas_dp_mmx
36 #define _op_copy_pan_mas_dpan_mmx _op_copy_p_mas_dpan_mmx
37 #define _op_copy_pas_mas_dpan_mmx _op_copy_p_mas_dpan_mmx
40 init_copy_pixel_mask_span_funcs_mmx(void)
42 op_copy_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_p_mas_dp_mmx;
43 op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pan_mas_dp_mmx;
44 op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pas_mas_dp_mmx;
46 op_copy_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_p_mas_dpan_mmx;
47 op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pan_mas_dpan_mmx;
48 op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pas_mas_dpan_mmx;
54 _op_copy_pt_p_mas_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
56 MOV_A2R(ALPHA_255, mm5)
61 INTERP_256_R2R(mm3, mm2, mm1, mm5);
65 #define _op_copy_pt_pan_mas_dp_mmx _op_copy_pt_p_mas_dp_mmx
66 #define _op_copy_pt_pas_mas_dp_mmx _op_copy_pt_p_mas_dp_mmx
68 #define _op_copy_pt_p_mas_dpan_mmx _op_copy_pt_p_mas_dp_mmx
69 #define _op_copy_pt_pan_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx
70 #define _op_copy_pt_pas_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx
73 init_copy_pixel_mask_pt_funcs_mmx(void)
75 op_copy_pt_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_p_mas_dp_mmx;
76 op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_pan_mas_dp_mmx;
77 op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_pt_pas_mas_dp_mmx;
79 op_copy_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_p_mas_dpan_mmx;
80 op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pan_mas_dpan_mmx;
81 op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_pt_pas_mas_dpan_mmx;
87 /* copy_rel pixel x mask --> dst */
91 _op_copy_rel_p_mas_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
94 MOV_A2R(ALPHA_255, mm5)
102 MOV_P2R(*s, mm2, mm0)
104 MUL4_SYM_R2R(mm2, mm1, mm5)
105 MOV_R2P(mm1, *d, mm0)
109 MOV_P2R(*s, mm3, mm0)
110 MOV_P2R(*d, mm1, mm0)
112 MUL4_SYM_R2R(mm3, mm2, mm5)
114 INTERP_256_R2R(mm3, mm2, mm1, mm5)
115 MOV_R2P(mm1, *d, mm0)
122 #define _op_copy_rel_pan_mas_dp_mmx _op_copy_rel_p_mas_dp_mmx
123 #define _op_copy_rel_pas_mas_dp_mmx _op_copy_rel_p_mas_dp_mmx
125 #define _op_copy_rel_p_mas_dpan_mmx _op_copy_p_mas_dpan_mmx
126 #define _op_copy_rel_pan_mas_dpan_mmx _op_copy_pan_mas_dpan_mmx
127 #define _op_copy_rel_pas_mas_dpan_mmx _op_copy_pas_mas_dpan_mmx
130 init_copy_rel_pixel_mask_span_funcs_mmx(void)
132 op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_p_mas_dp_mmx;
133 op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pan_mas_dp_mmx;
134 op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pas_mas_dp_mmx;
136 op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_p_mas_dpan_mmx;
137 op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pan_mas_dpan_mmx;
138 op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pas_mas_dpan_mmx;
144 _op_copy_rel_pt_p_mas_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
147 MOV_A2R(ALPHA_255, mm5)
149 MOV_P2R(*d, mm1, mm0)
151 MUL4_SYM_R2R(mm3, mm2, mm5)
153 INTERP_256_R2R(mm3, mm2, mm1, mm5)
154 MOV_R2P(mm1, *d, mm0)
158 #define _op_copy_rel_pt_pan_mas_dp_mmx _op_copy_rel_pt_p_mas_dp_mmx
159 #define _op_copy_rel_pt_pas_mas_dp_mmx _op_copy_rel_pt_p_mas_dp_mmx
161 #define _op_copy_rel_pt_p_mas_dpan_mmx _op_copy_pt_p_mas_dpan_mmx
162 #define _op_copy_rel_pt_pan_mas_dpan_mmx _op_copy_pt_pan_mas_dpan_mmx
163 #define _op_copy_rel_pt_pas_mas_dpan_mmx _op_copy_pt_pas_mas_dpan_mmx
166 init_copy_rel_pixel_mask_pt_funcs_mmx(void)
168 op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_p_mas_dp_mmx;
169 op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pan_mas_dp_mmx;
170 op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_MMX] = _op_copy_rel_pt_pas_mas_dp_mmx;
172 op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_p_mas_dpan_mmx;
173 op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pan_mas_dpan_mmx;
174 op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_MMX] = _op_copy_rel_pt_pas_mas_dpan_mmx;