{
*lnr = ln;
/* FIXME: Is that really what we want ? */
- *itr = fit;
+ *itr = (Evas_Object_Textblock_Item *)fit;
return;
}
}
op_copy_color_neon.c \
op_copy_mask_color_.c \
op_copy_mask_color_i386.c \
+op_copy_mask_color_neon.c \
op_copy_pixel_.c \
op_copy_pixel_color_.c \
op_copy_pixel_color_i386.c \
+op_copy_pixel_color_neon.c \
op_copy_pixel_i386.c \
op_copy_pixel_mask_.c \
-op_copy_pixel_mask_i386.c
+op_copy_pixel_mask_i386.c \
+op_copy_pixel_mask_neon.c
#ifdef BUILD_NEON
static void
_op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
- // FIXME: handle unaligned stores - stores not aligned to 16bytes may suck
uint32_t *e;
uint32_t dalign = ((uint32_t)d) & 0xf; // get alignment
+ // handle unaligned stores - stores not aligned to 16bytes may suck
if (dalign > 0)
{
dalign = 16 - dalign;
}
e = d + l;
e -= 15;
+ // expand the color in c to a 128 bit register as "cccc" i.e 4 pixels of c
uint32x4_t col = vdupq_n_u32(c);
+ // fill a run of 4x4 (16) pixels with the color
for (; d < e; d += 16) {
vst1q_u32(d+0, col); // OP
vst1q_u32(d+4, col); // OP
vst1q_u32(d+12, col); // OP
}
e += 15;
+ // fixup any leftover pixels in the run
for (; d < e; d++) {
*d = c; // OP
}
#ifdef BUILD_NEON
static void
_op_copy_pt_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
- *d = c;
+ *d = c;
}
#define _op_copy_pt_cn_dp_neon _op_copy_pt_c_dp_neon
#ifdef BUILD_NEON
static void
_op_copy_rel_pt_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
- s = 1 + (*d >> 24);
- *d = MUL_256(s, c);
+ s = 1 + (*d >> 24);
+ *d = MUL_256(s, c);
}
--- /dev/null
+
+/* copy mask x color -> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ int color;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ color = *m;
+ switch(color)
+ {
+ case 0:
+ break;
+ case 255:
+ *d = c;
+ break;
+ default:
+ color++;
+ *d = INTERP_256(color, c, *d);
+ break;
+ }
+ m++; d++;
+ });
+}
+
+#define _op_copy_mas_cn_dp_neon _op_copy_mas_c_dp_neon
+#define _op_copy_mas_can_dp_neon _op_copy_mas_c_dp_neon
+#define _op_copy_mas_caa_dp_neon _op_copy_mas_c_dp_neon
+
+#define _op_copy_mas_c_dpan_neon _op_copy_mas_c_dp_neon
+#define _op_copy_mas_cn_dpan_neon _op_copy_mas_c_dpan_neon
+#define _op_copy_mas_can_dpan_neon _op_copy_mas_c_dpan_neon
+#define _op_copy_mas_caa_dpan_neon _op_copy_mas_c_dpan_neon
+
+static void
+init_copy_mask_color_span_funcs_neon(void)
+{
+ op_copy_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_mas_cn_dp_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_mas_c_dp_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_mas_can_dp_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_mas_caa_dp_neon;
+
+ op_copy_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_mas_cn_dpan_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_mas_c_dpan_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_mas_can_dpan_neon;
+ op_copy_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_mas_caa_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
+ *d = INTERP_256(m + 1, c, *d);
+}
+
+#define _op_copy_pt_mas_cn_dp_neon _op_copy_pt_mas_c_dp_neon
+#define _op_copy_pt_mas_can_dp_neon _op_copy_pt_mas_c_dp_neon
+#define _op_copy_pt_mas_caa_dp_neon _op_copy_pt_mas_c_dp_neon
+
+#define _op_copy_pt_mas_c_dpan_neon _op_copy_pt_mas_c_dp_neon
+#define _op_copy_pt_mas_cn_dpan_neon _op_copy_pt_mas_c_dpan_neon
+#define _op_copy_pt_mas_can_dpan_neon _op_copy_pt_mas_c_dpan_neon
+#define _op_copy_pt_mas_caa_dpan_neon _op_copy_pt_mas_c_dpan_neon
+
+static void
+init_copy_mask_color_pt_funcs_neon(void)
+{
+ op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_mas_cn_dp_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_pt_mas_c_dp_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_pt_mas_can_dp_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_pt_mas_caa_dp_neon;
+
+ op_copy_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_mas_cn_dpan_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_pt_mas_c_dpan_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_mas_can_dpan_neon;
+ op_copy_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_mas_caa_dpan_neon;
+}
+#endif
+
+/*-----*/
+
+/* copy_rel mask x color -> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ int color;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ color = *m;
+ switch(color)
+ {
+ case 0:
+ break;
+ case 255:
+ color = 1 + (*d >> 24);
+ *d = MUL_256(color, c);
+ break;
+ default:
+ {
+ DATA32 da = 1 + (*d >> 24);
+ da = MUL_256(da, c);
+ color++;
+ *d = INTERP_256(color, da, *d);
+ }
+ break;
+ }
+ m++; d++;
+ });
+}
+
+#define _op_copy_rel_mas_cn_dp_neon _op_copy_rel_mas_c_dp_neon
+#define _op_copy_rel_mas_can_dp_neon _op_copy_rel_mas_c_dp_neon
+#define _op_copy_rel_mas_caa_dp_neon _op_copy_rel_mas_c_dp_neon
+
+#define _op_copy_rel_mas_c_dpan_neon _op_copy_mas_c_dpan_neon
+#define _op_copy_rel_mas_cn_dpan_neon _op_copy_mas_cn_dpan_neon
+#define _op_copy_rel_mas_can_dpan_neon _op_copy_mas_can_dpan_neon
+#define _op_copy_rel_mas_caa_dpan_neon _op_copy_mas_caa_dpan_neon
+
+static void
+init_copy_rel_mask_color_span_funcs_neon(void)
+{
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_mas_cn_dp_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_rel_mas_c_dp_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_rel_mas_can_dp_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_rel_mas_caa_dp_neon;
+
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_mas_cn_dpan_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_rel_mas_c_dpan_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_mas_can_dpan_neon;
+ op_copy_rel_span_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_mas_caa_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_pt_mas_c_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
+ s = 1 + (*d >> 24);
+ s = MUL_256(s, c);
+ *d = INTERP_256(m + 1, s, *d);
+}
+
+#define _op_copy_rel_pt_mas_cn_dp_neon _op_copy_rel_pt_mas_c_dp_neon
+#define _op_copy_rel_pt_mas_can_dp_neon _op_copy_rel_pt_mas_c_dp_neon
+#define _op_copy_rel_pt_mas_caa_dp_neon _op_copy_rel_pt_mas_c_dp_neon
+
+#define _op_copy_rel_pt_mas_c_dpan_neon _op_copy_pt_mas_c_dpan_neon
+#define _op_copy_rel_pt_mas_cn_dpan_neon _op_copy_pt_mas_cn_dpan_neon
+#define _op_copy_rel_pt_mas_can_dpan_neon _op_copy_pt_mas_can_dpan_neon
+#define _op_copy_rel_pt_mas_caa_dpan_neon _op_copy_pt_mas_caa_dpan_neon
+
+static void
+init_copy_rel_mask_color_pt_funcs_neon(void)
+{
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_mas_cn_dp_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP][CPU_NEON] = _op_copy_rel_pt_mas_c_dp_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_mas_can_dp_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_mas_caa_dp_neon;
+
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_cn_dpan_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_c_dpan_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_can_dpan_neon;
+ op_copy_rel_pt_funcs[SP_N][SM_AS][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_mas_caa_dpan_neon;
+}
+#endif
--- /dev/null
+
+/* copy pixel x color --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ *d = MUL4_SYM(c, *s);
+ d++;
+ s++;
+ });
+}
+
+
+static void
+_op_copy_p_caa_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) { // FIXME: neon-it
+ // FIXME: neon-it
+ DATA32 *e;
+ c = 1 + (c >> 24);
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ *d = MUL_256(c, *s);
+ d++;
+ s++;
+ });
+}
+
+
+#define _op_copy_pas_c_dp_neon _op_copy_p_c_dp_neon
+#define _op_copy_pan_c_dp_neon _op_copy_p_c_dp_neon
+#define _op_copy_p_can_dp_neon _op_copy_p_c_dp_neon
+#define _op_copy_pas_can_dp_neon _op_copy_pas_c_dp_neon
+#define _op_copy_pan_can_dp_neon _op_copy_pan_c_dp_neon
+#define _op_copy_pas_caa_dp_neon _op_copy_p_caa_dp_neon
+#define _op_copy_pan_caa_dp_neon _op_copy_p_caa_dp_neon
+
+#define _op_copy_p_c_dpan_neon _op_copy_p_c_dp_neon
+#define _op_copy_pas_c_dpan_neon _op_copy_pas_c_dp_neon
+#define _op_copy_pan_c_dpan_neon _op_copy_pan_c_dp_neon
+#define _op_copy_p_can_dpan_neon _op_copy_p_can_dp_neon
+#define _op_copy_pas_can_dpan_neon _op_copy_pas_can_dp_neon
+#define _op_copy_pan_can_dpan_neon _op_copy_pan_can_dp_neon
+#define _op_copy_p_caa_dpan_neon _op_copy_p_caa_dp_neon
+#define _op_copy_pas_caa_dpan_neon _op_copy_pas_caa_dp_neon
+#define _op_copy_pan_caa_dpan_neon _op_copy_pan_caa_dp_neon
+
+static void
+init_copy_pixel_color_span_funcs_neon(void)
+{
+ op_copy_span_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_p_c_dp_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_pas_c_dp_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_pan_c_dp_neon;
+ op_copy_span_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_p_can_dp_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pas_can_dp_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pan_can_dp_neon;
+ op_copy_span_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_p_caa_dp_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pas_caa_dp_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pan_caa_dp_neon;
+
+ op_copy_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_p_c_dpan_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pas_c_dpan_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pan_c_dpan_neon;
+ op_copy_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_p_can_dpan_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pas_can_dpan_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pan_can_dpan_neon;
+ op_copy_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_p_caa_dpan_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pas_caa_dpan_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pan_caa_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_pt_p_c_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
+ *d = MUL4_SYM(c, s);
+}
+
+#define _op_copy_pt_pas_c_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pan_c_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_p_can_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pas_can_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pan_can_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_p_caa_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pas_caa_dp_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pan_caa_dp_neon _op_copy_pt_p_c_dp_neon
+
+#define _op_copy_pt_p_c_dpan_neon _op_copy_pt_p_c_dp_neon
+#define _op_copy_pt_pas_c_dpan_neon _op_copy_pt_pas_c_dp_neon
+#define _op_copy_pt_pan_c_dpan_neon _op_copy_pt_pan_c_dp_neon
+#define _op_copy_pt_p_can_dpan_neon _op_copy_pt_p_can_dp_neon
+#define _op_copy_pt_pas_can_dpan_neon _op_copy_pt_pas_can_dp_neon
+#define _op_copy_pt_pan_can_dpan_neon _op_copy_pt_pan_can_dp_neon
+#define _op_copy_pt_p_caa_dpan_neon _op_copy_pt_p_caa_dp_neon
+#define _op_copy_pt_pas_caa_dpan_neon _op_copy_pt_pas_caa_dp_neon
+#define _op_copy_pt_pan_caa_dpan_neon _op_copy_pt_pan_caa_dp_neon
+
+static void
+init_copy_pixel_color_pt_funcs_neon(void)
+{
+ op_copy_pt_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_p_c_dp_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_pas_c_dp_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_pt_pan_c_dp_neon;
+ op_copy_pt_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_p_can_dp_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_pas_can_dp_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_pt_pan_can_dp_neon;
+ op_copy_pt_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_p_caa_dp_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_pas_caa_dp_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_pt_pan_caa_dp_neon;
+
+ op_copy_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_p_c_dpan_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_pas_c_dpan_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_pt_pan_c_dpan_neon;
+ op_copy_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_p_can_dpan_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_pas_can_dpan_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_pt_pan_can_dpan_neon;
+ op_copy_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_p_caa_dpan_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_pas_caa_dpan_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_pt_pan_caa_dpan_neon;
+}
+#endif
+
+/*-----*/
+
+/* copy_rel pixel x color --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ DATA32 cs = MUL4_SYM(c, *s);
+ *d = MUL_SYM(*d >> 24, cs);
+ d++;
+ s++;
+ });
+}
+
+
+#define _op_copy_rel_pas_c_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_pan_c_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_p_can_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_pas_can_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_pan_can_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_p_caa_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_pas_caa_dp_neon _op_copy_rel_p_c_dp_neon
+#define _op_copy_rel_pan_caa_dp_neon _op_copy_rel_p_c_dp_neon
+
+#define _op_copy_rel_p_c_dpan_neon _op_copy_p_c_dpan_neon
+#define _op_copy_rel_pas_c_dpan_neon _op_copy_pas_c_dpan_neon
+#define _op_copy_rel_pan_c_dpan_neon _op_copy_pan_c_dpan_neon
+#define _op_copy_rel_p_can_dpan_neon _op_copy_p_can_dpan_neon
+#define _op_copy_rel_pas_can_dpan_neon _op_copy_pas_can_dpan_neon
+#define _op_copy_rel_pan_can_dpan_neon _op_copy_pan_can_dpan_neon
+#define _op_copy_rel_p_caa_dpan_neon _op_copy_p_caa_dpan_neon
+#define _op_copy_rel_pas_caa_dpan_neon _op_copy_pas_caa_dpan_neon
+#define _op_copy_rel_pan_caa_dpan_neon _op_copy_pan_caa_dpan_neon
+
+static void
+init_copy_rel_pixel_color_span_funcs_neon(void)
+{
+ op_copy_rel_span_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_p_c_dp_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pas_c_dp_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pan_c_dp_neon;
+ op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_p_can_dp_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pas_can_dp_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pan_can_dp_neon;
+ op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_p_caa_dp_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pas_caa_dp_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pan_caa_dp_neon;
+
+ op_copy_rel_span_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_p_c_dpan_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pas_c_dpan_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pan_c_dpan_neon;
+ op_copy_rel_span_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_p_can_dpan_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pas_can_dpan_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pan_can_dpan_neon;
+ op_copy_rel_span_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_p_caa_dpan_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pas_caa_dpan_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pan_caa_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_pt_p_c_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
+ s = MUL4_SYM(c, s);
+ *d = MUL_SYM(*d >> 24, s);
+}
+
+
+#define _op_copy_rel_pt_pas_c_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_pan_c_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_p_can_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_pas_can_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_pan_can_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_p_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_pas_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon
+#define _op_copy_rel_pt_pan_caa_dp_neon _op_copy_rel_pt_p_c_dp_neon
+
+#define _op_copy_rel_pt_p_c_dpan_neon _op_copy_pt_p_c_dpan_neon
+#define _op_copy_rel_pt_pas_c_dpan_neon _op_copy_pt_pas_c_dpan_neon
+#define _op_copy_rel_pt_pan_c_dpan_neon _op_copy_pt_pan_c_dpan_neon
+#define _op_copy_rel_pt_p_can_dpan_neon _op_copy_pt_p_can_dpan_neon
+#define _op_copy_rel_pt_pas_can_dpan_neon _op_copy_pt_pas_can_dpan_neon
+#define _op_copy_rel_pt_pan_can_dpan_neon _op_copy_pt_pan_can_dpan_neon
+#define _op_copy_rel_pt_p_caa_dpan_neon _op_copy_pt_p_caa_dpan_neon
+#define _op_copy_rel_pt_pas_caa_dpan_neon _op_copy_pt_pas_caa_dpan_neon
+#define _op_copy_rel_pt_pan_caa_dpan_neon _op_copy_pt_pan_caa_dpan_neon
+
+
+static void
+init_copy_rel_pixel_color_pt_funcs_neon(void)
+{
+ op_copy_rel_pt_funcs[SP][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_p_c_dp_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_pas_c_dp_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP][CPU_NEON] = _op_copy_rel_pt_pan_c_dp_neon;
+ op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_p_can_dp_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_pas_can_dp_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP][CPU_NEON] = _op_copy_rel_pt_pan_can_dp_neon;
+ op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_p_caa_dp_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_pas_caa_dp_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP][CPU_NEON] = _op_copy_rel_pt_pan_caa_dp_neon;
+
+ op_copy_rel_pt_funcs[SP][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_c_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_c_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_c_dpan_neon;
+ op_copy_rel_pt_funcs[SP][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_can_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_can_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AN][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_can_dpan_neon;
+ op_copy_rel_pt_funcs[SP][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_caa_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_caa_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_AA][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_caa_dpan_neon;
+}
+#endif
--- /dev/null
+
+/* copy pixel x mask --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_p_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ int color;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ color = *m;
+ switch(color)
+ {
+ case 0:
+ break;
+ case 255:
+ *d = *s;
+ break;
+ default:
+ color++;
+ *d = INTERP_256(color, *s, *d);
+ break;
+ }
+ m++; s++; d++;
+ });
+}
+
+#define _op_copy_pan_mas_dp_neon _op_copy_p_mas_dp_neon
+#define _op_copy_pas_mas_dp_neon _op_copy_p_mas_dp_neon
+
+#define _op_copy_p_mas_dpan_neon _op_copy_p_mas_dp_neon
+#define _op_copy_pan_mas_dpan_neon _op_copy_p_mas_dpan_neon
+#define _op_copy_pas_mas_dpan_neon _op_copy_p_mas_dpan_neon
+
+static void
+init_copy_pixel_mask_span_funcs_neon(void)
+{
+ op_copy_span_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_p_mas_dp_neon;
+ op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pan_mas_dp_neon;
+ op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pas_mas_dp_neon;
+
+ op_copy_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_p_mas_dpan_neon;
+ op_copy_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pan_mas_dpan_neon;
+ op_copy_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pas_mas_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_pt_p_mas_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
+ *d = INTERP_256(m + 1, s, *d);
+}
+
+#define _op_copy_pt_pan_mas_dp_neon _op_copy_pt_p_mas_dp_neon
+#define _op_copy_pt_pas_mas_dp_neon _op_copy_pt_p_mas_dp_neon
+
+#define _op_copy_pt_p_mas_dpan_neon _op_copy_pt_p_mas_dp_neon
+#define _op_copy_pt_pan_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon
+#define _op_copy_pt_pas_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon
+
+static void
+init_copy_pixel_mask_pt_funcs_neon(void)
+{
+ op_copy_pt_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_p_mas_dp_neon;
+ op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_pan_mas_dp_neon;
+ op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_pt_pas_mas_dp_neon;
+
+ op_copy_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_p_mas_dpan_neon;
+ op_copy_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pan_mas_dpan_neon;
+ op_copy_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pas_mas_dpan_neon;
+}
+#endif
+
+/*-----*/
+
+/* copy_rel pixel x mask --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_p_mas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c __UNUSED__, DATA32 *d, int l) {
+ // FIXME: neon-it
+ DATA32 *e;
+ int color;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ color = *m;
+ switch(color)
+ {
+ case 0:
+ break;
+ case 255:
+ *d = MUL_SYM(*d >> 24, *s);
+ break;
+ default:
+ c = MUL_SYM(*d >> 24, *s);
+ l++;
+ *d = INTERP_256(l, c, *d);
+ break;
+ }
+ m++; s++; d++;
+ });
+}
+
+#define _op_copy_rel_pan_mas_dp_neon _op_copy_rel_p_mas_dp_neon
+#define _op_copy_rel_pas_mas_dp_neon _op_copy_rel_p_mas_dp_neon
+
+#define _op_copy_rel_p_mas_dpan_neon _op_copy_p_mas_dpan_neon
+#define _op_copy_rel_pan_mas_dpan_neon _op_copy_pan_mas_dpan_neon
+#define _op_copy_rel_pas_mas_dpan_neon _op_copy_pas_mas_dpan_neon
+
+static void
+init_copy_rel_pixel_mask_span_funcs_neon(void)
+{
+ op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_p_mas_dp_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pan_mas_dp_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pas_mas_dp_neon;
+
+ op_copy_rel_span_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_p_mas_dpan_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pan_mas_dpan_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pas_mas_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_pt_p_mas_dp_neon(DATA32 s, DATA8 m, DATA32 c, DATA32 *d) {
+ c = MUL_SYM(*d >> 24, s);
+ *d = INTERP_256(m + 1, c, *d);
+}
+
+
+#define _op_copy_rel_pt_pan_mas_dp_neon _op_copy_rel_pt_p_mas_dp_neon
+#define _op_copy_rel_pt_pas_mas_dp_neon _op_copy_rel_pt_p_mas_dp_neon
+
+#define _op_copy_rel_pt_p_mas_dpan_neon _op_copy_pt_p_mas_dpan_neon
+#define _op_copy_rel_pt_pan_mas_dpan_neon _op_copy_pt_pan_mas_dpan_neon
+#define _op_copy_rel_pt_pas_mas_dpan_neon _op_copy_pt_pas_mas_dpan_neon
+
+static void
+init_copy_rel_pixel_mask_pt_funcs_neon(void)
+{
+ op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_p_mas_dp_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pan_mas_dp_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pas_mas_dp_neon;
+
+ op_copy_rel_pt_funcs[SP][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_mas_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_mas_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_AS][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_mas_dpan_neon;
+}
+#endif
+
--- /dev/null
+
+/* copy pixel --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_p_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
+ memcpy(d, s, l * sizeof(DATA32));
+}
+
+#define _op_copy_pan_dp_neon _op_copy_p_dp_neon
+#define _op_copy_pas_dp_neon _op_copy_p_dp_neon
+
+#define _op_copy_p_dpan_neon _op_copy_p_dp_neon
+#define _op_copy_pan_dpan_neon _op_copy_pan_dp_neon
+#define _op_copy_pas_dpan_neon _op_copy_pas_dp_neon
+
+static void
+init_copy_pixel_span_funcs_neon(void)
+{
+ op_copy_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_p_dp_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pan_dp_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pas_dp_neon;
+
+ op_copy_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_p_dpan_neon;
+ op_copy_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pan_dpan_neon;
+ op_copy_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pas_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_pt_p_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d) {
+ *d = s;
+}
+
+#define _op_copy_pt_pan_dp_neon _op_copy_pt_p_dp_neon
+#define _op_copy_pt_pas_dp_neon _op_copy_pt_p_dp_neon
+
+#define _op_copy_pt_p_dpan_neon _op_copy_pt_p_dp_neon
+#define _op_copy_pt_pan_dpan_neon _op_copy_pt_pan_dp_neon
+#define _op_copy_pt_pas_dpan_neon _op_copy_pt_pas_dp_neon
+
+static void
+init_copy_pixel_pt_funcs_neon(void)
+{
+ op_copy_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_p_dp_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_pan_dp_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_pt_pas_dp_neon;
+
+ op_copy_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_p_dpan_neon;
+ op_copy_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pan_dpan_neon;
+ op_copy_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_pt_pas_dpan_neon;
+}
+#endif
+
+/*-----*/
+
+/* copy_rel pixel --> dst */
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_p_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *d, int l) {
+ DATA32 *e;
+ UNROLL8_PLD_WHILE(d, l, e,
+ {
+ *d = MUL_SYM(*d >> 24, c);
+ d++;
+ });
+}
+
+
+#define _op_copy_rel_pas_dp_neon _op_copy_rel_p_dp_neon
+#define _op_copy_rel_pan_dp_neon _op_copy_rel_p_dp_neon
+
+#define _op_copy_rel_p_dpan_neon _op_copy_p_dpan_neon
+#define _op_copy_rel_pan_dpan_neon _op_copy_pan_dpan_neon
+#define _op_copy_rel_pas_dpan_neon _op_copy_pas_dpan_neon
+
+static void
+init_copy_rel_pixel_span_funcs_neon(void)
+{
+ op_copy_rel_span_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_p_dp_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pan_dp_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pas_dp_neon;
+
+ op_copy_rel_span_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_p_dpan_neon;
+ op_copy_rel_span_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pan_dpan_neon;
+ op_copy_rel_span_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pas_dpan_neon;
+}
+#endif
+
+#ifdef BUILD_NEON
+static void
+_op_copy_rel_pt_p_dp_neon(DATA32 s, DATA8 m __UNUSED__, DATA32 c, DATA32 *d) {
+ s = 1 + (*d >> 24);
+ *d = MUL_256(s, c);
+}
+
+
+#define _op_copy_rel_pt_pan_dp_neon _op_copy_rel_pt_p_dp_neon
+#define _op_copy_rel_pt_pas_dp_neon _op_copy_rel_pt_p_dp_neon
+
+#define _op_copy_rel_pt_p_dpan_neon _op_copy_pt_p_dpan_neon
+#define _op_copy_rel_pt_pan_dpan_neon _op_copy_pt_pan_dpan_neon
+#define _op_copy_rel_pt_pas_dpan_neon _op_copy_pt_pas_dpan_neon
+
+static void
+init_copy_rel_pixel_pt_funcs_neon(void)
+{
+ op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_p_dp_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pan_dp_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP][CPU_NEON] = _op_copy_rel_pt_pas_dp_neon;
+
+ op_copy_rel_pt_funcs[SP][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_p_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AN][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pan_dpan_neon;
+ op_copy_rel_pt_funcs[SP_AS][SM_N][SC_N][DP_AN][CPU_NEON] = _op_copy_rel_pt_pas_dpan_neon;
+}
+#endif
# include "./evas_op_copy/op_copy_mask_color_i386.c"
//# include "./evas_op_copy/op_copy_pixel_mask_color_i386.c"
-//# include "./evas_op_copy/op_copy_pixel_i386.c"
+# include "./evas_op_copy/op_copy_pixel_neon.c"
# include "./evas_op_copy/op_copy_color_neon.c"
-//# include "./evas_op_copy/op_copy_pixel_color_i386.c"
-//# include "./evas_op_copy/op_copy_pixel_mask_i386.c"
-//# include "./evas_op_copy/op_copy_mask_color_i386.c"
-////# include "./evas_op_copy/op_copy_pixel_mask_color_i386.c"
+# include "./evas_op_copy/op_copy_pixel_color_neon.c"
+# include "./evas_op_copy/op_copy_pixel_mask_neon.c"
+# include "./evas_op_copy/op_copy_mask_color_neon.c"
+//# include "./evas_op_copy/op_copy_pixel_mask_color_neon.c"
static void
init_copy_mask_color_pt_funcs_c();
#endif
#ifdef BUILD_NEON
-// init_copy_pixel_span_funcs_neon();
-// init_copy_pixel_color_span_funcs_neon();
-// init_copy_pixel_mask_span_funcs_neon();
+ init_copy_pixel_span_funcs_neon();
+ init_copy_pixel_color_span_funcs_neon();
+ init_copy_pixel_mask_span_funcs_neon();
init_copy_color_span_funcs_neon();
-// init_copy_mask_color_span_funcs_neon();
+ init_copy_mask_color_span_funcs_neon();
// init_copy_pixel_pt_funcs_neon();
// init_copy_pixel_color_pt_funcs_neon();