ARM: added 'neon_combine_add_u' function
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Wed, 9 Dec 2009 22:25:58 +0000 (00:25 +0200)
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>
Wed, 16 Dec 2009 18:56:13 +0000 (20:56 +0200)
pixman/pixman-arm-neon-asm.S
pixman/pixman-arm-neon.c

index d2c5fc7..2986884 100644 (file)
@@ -561,6 +561,16 @@ generate_composite_function \
     pixman_composite_add_8000_8000_process_pixblock_tail, \
     pixman_composite_add_8888_8888_process_pixblock_tail_head
 
+generate_composite_function_single_scanline \
+    pixman_composite_scanline_add_asm_neon, 32, 0, 32, \
+    FLAG_DST_READWRITE, \
+    8, /* number of pixels, processed in a single block */ \
+    default_init, \
+    default_cleanup, \
+    pixman_composite_add_8000_8000_process_pixblock_head, \
+    pixman_composite_add_8000_8000_process_pixblock_tail, \
+    pixman_composite_add_8888_8888_process_pixblock_tail_head
+
 /******************************************************************************/
 
 .macro pixman_composite_over_8888_8888_process_pixblock_head
@@ -1172,6 +1182,16 @@ generate_composite_function \
     pixman_composite_add_8888_8888_8888_process_pixblock_tail, \
     pixman_composite_add_8888_8888_8888_process_pixblock_tail_head
 
+generate_composite_function_single_scanline \
+    pixman_composite_scanline_add_mask_asm_neon, 32, 32, 32, \
+    FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
+    8, /* number of pixels, processed in a single block */ \
+    default_init, \
+    default_cleanup, \
+    pixman_composite_add_8888_8888_8888_process_pixblock_head, \
+    pixman_composite_add_8888_8888_8888_process_pixblock_tail, \
+    pixman_composite_add_8888_8888_8888_process_pixblock_tail_head
+
 /******************************************************************************/
 
 .macro pixman_composite_over_8888_n_8888_process_pixblock_head
index 00f75eb..efeabeb 100644 (file)
@@ -544,6 +544,7 @@ neon_combine_##name##_u (pixman_implementation_t *imp,                   \
 }
 
 BIND_COMBINE_U (over)
+BIND_COMBINE_U (add)
 
 pixman_implementation_t *
 _pixman_implementation_create_arm_neon (void)
@@ -552,6 +553,7 @@ _pixman_implementation_create_arm_neon (void)
     pixman_implementation_t *imp = _pixman_implementation_create (general);
 
     imp->combine_32[PIXMAN_OP_OVER] = neon_combine_over_u;
+    imp->combine_32[PIXMAN_OP_ADD] = neon_combine_add_u;
 
     imp->composite = arm_neon_composite;
     imp->blt = arm_neon_blt;