2 /* mul pixel x color --> dst */
6 _op_mul_p_c_dp_mmx(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
8 MOV_A2R(ALPHA_255, mm5)
14 MUL4_SYM_R2R(mm2, mm3, mm5)
16 MUL4_SYM_R2R(mm3, mm1, mm5)
22 #define _op_mul_pas_c_dp_mmx _op_mul_p_c_dp_mmx
23 #define _op_mul_pan_c_dp_mmx _op_mul_p_c_dp_mmx
24 #define _op_mul_p_can_dp_mmx _op_mul_p_c_dp_mmx
25 #define _op_mul_pas_can_dp_mmx _op_mul_p_c_dp_mmx
26 #define _op_mul_pan_can_dp_mmx _op_mul_p_c_dp_mmx
27 #define _op_mul_p_caa_dp_mmx _op_mul_p_c_dp_mmx
28 #define _op_mul_pas_caa_dp_mmx _op_mul_p_c_dp_mmx
29 #define _op_mul_pan_caa_dp_mmx _op_mul_p_c_dp_mmx
31 #define _op_mul_p_c_dpan_mmx _op_mul_p_c_dp_mmx
32 #define _op_mul_pan_c_dpan_mmx _op_mul_pan_c_dp_mmx
33 #define _op_mul_pas_c_dpan_mmx _op_mul_pas_c_dp_mmx
34 #define _op_mul_p_can_dpan_mmx _op_mul_p_can_dp_mmx
35 #define _op_mul_pan_can_dpan_mmx _op_mul_pan_can_dp_mmx
36 #define _op_mul_pas_can_dpan_mmx _op_mul_pas_can_dp_mmx
37 #define _op_mul_p_caa_dpan_mmx _op_mul_p_caa_dp_mmx
38 #define _op_mul_pan_caa_dpan_mmx _op_mul_pan_caa_dp_mmx
39 #define _op_mul_pas_caa_dpan_mmx _op_mul_pas_caa_dp_mmx
42 init_mul_pixel_color_span_funcs_mmx(void)
44 op_mul_span_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_p_c_dp_mmx;
45 op_mul_span_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pas_c_dp_mmx;
46 op_mul_span_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pan_c_dp_mmx;
47 op_mul_span_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_p_can_dp_mmx;
48 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pas_can_dp_mmx;
49 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pan_can_dp_mmx;
50 op_mul_span_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_p_caa_dp_mmx;
51 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pas_caa_dp_mmx;
52 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pan_caa_dp_mmx;
54 op_mul_span_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_p_c_dpan_mmx;
55 op_mul_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pas_c_dpan_mmx;
56 op_mul_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pan_c_dpan_mmx;
57 op_mul_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_p_can_dpan_mmx;
58 op_mul_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pas_can_dpan_mmx;
59 op_mul_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pan_can_dpan_mmx;
60 op_mul_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_p_caa_dpan_mmx;
61 op_mul_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pas_caa_dpan_mmx;
62 op_mul_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pan_caa_dpan_mmx;
68 _op_mul_pt_p_c_dp_mmx(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
69 MOV_A2R(ALPHA_255, mm5)
73 MUL4_SYM_R2R(mm2, mm3, mm5)
75 MUL4_SYM_R2R(mm3, mm1, mm5)
79 #define _op_mul_pt_pas_c_dp_mmx _op_mul_pt_p_c_dp_mmx
80 #define _op_mul_pt_pan_c_dp_mmx _op_mul_pt_p_c_dp_mmx
81 #define _op_mul_pt_p_can_dp_mmx _op_mul_pt_p_c_dp_mmx
82 #define _op_mul_pt_pas_can_dp_mmx _op_mul_pt_p_c_dp_mmx
83 #define _op_mul_pt_pan_can_dp_mmx _op_mul_pt_p_c_dp_mmx
84 #define _op_mul_pt_p_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
85 #define _op_mul_pt_pas_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
86 #define _op_mul_pt_pan_caa_dp_mmx _op_mul_pt_p_c_dp_mmx
88 #define _op_mul_pt_p_c_dpan_mmx _op_mul_pt_p_c_dp_mmx
89 #define _op_mul_pt_pan_c_dpan_mmx _op_mul_pt_pan_c_dp_mmx
90 #define _op_mul_pt_pas_c_dpan_mmx _op_mul_pt_pas_c_dp_mmx
91 #define _op_mul_pt_p_can_dpan_mmx _op_mul_pt_p_can_dp_mmx
92 #define _op_mul_pt_pan_can_dpan_mmx _op_mul_pt_pan_can_dp_mmx
93 #define _op_mul_pt_pas_can_dpan_mmx _op_mul_pt_pas_can_dp_mmx
94 #define _op_mul_pt_p_caa_dpan_mmx _op_mul_pt_p_caa_dp_mmx
95 #define _op_mul_pt_pan_caa_dpan_mmx _op_mul_pt_pan_caa_dp_mmx
96 #define _op_mul_pt_pas_caa_dpan_mmx _op_mul_pt_pas_caa_dp_mmx
99 init_mul_pixel_color_pt_funcs_mmx(void)
101 op_mul_pt_funcs[SP][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_p_c_dp_mmx;
102 op_mul_pt_funcs[SP_AS][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pas_c_dp_mmx;
103 op_mul_pt_funcs[SP_AN][SM_N][SC][DP][CPU_MMX] = _op_mul_pt_pan_c_dp_mmx;
104 op_mul_pt_funcs[SP][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_p_can_dp_mmx;
105 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pas_can_dp_mmx;
106 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_MMX] = _op_mul_pt_pan_can_dp_mmx;
107 op_mul_pt_funcs[SP][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_p_caa_dp_mmx;
108 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pas_caa_dp_mmx;
109 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_MMX] = _op_mul_pt_pan_caa_dp_mmx;
111 op_mul_pt_funcs[SP][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_p_c_dpan_mmx;
112 op_mul_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pas_c_dpan_mmx;
113 op_mul_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_MMX] = _op_mul_pt_pan_c_dpan_mmx;
114 op_mul_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_p_can_dpan_mmx;
115 op_mul_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pas_can_dpan_mmx;
116 op_mul_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_MMX] = _op_mul_pt_pan_can_dpan_mmx;
117 op_mul_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_p_caa_dpan_mmx;
118 op_mul_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pas_caa_dpan_mmx;
119 op_mul_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_MMX] = _op_mul_pt_pan_caa_dpan_mmx;