summaryrefslogtreecommitdiff
path: root/src/lib/evas/common
diff options
context:
space:
mode:
authorYury Usishchev <y.usishchev@samsung.com>2015-05-13 15:33:15 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-05-13 16:20:22 +0200
commit835c393d17a333675aa91ffcac801483fcbd5a35 (patch)
tree82d28d3d0de8d950cb1c2c9286c1f6aa7a4e93a5 /src/lib/evas/common
parentfc4f755c28ef70709a38a910edb750e11c0ddd9f (diff)
evas: add support for BUILD_NEON_INTRINSICS to evas_convert_rgb_32.c
Summary: This fixes build for aarch64 when TILE_ROTATE is disabled and BUILD_NEON is enabled(it is enabled by default for aarch64 since https://phab.enlightenment.org/D2309). Reviewers: cedric, raster Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2498 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Diffstat (limited to 'src/lib/evas/common')
-rw-r--r--src/lib/evas/common/evas_convert_rgb_32.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/lib/evas/common/evas_convert_rgb_32.c b/src/lib/evas/common/evas_convert_rgb_32.c
index 0cc3315..89789b2 100644
--- a/src/lib/evas/common/evas_convert_rgb_32.c
+++ b/src/lib/evas/common/evas_convert_rgb_32.c
@@ -308,27 +308,32 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, int
308void 308void
309evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x EINA_UNUSED, int dith_y EINA_UNUSED, DATA8 *pal EINA_UNUSED) 309evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x EINA_UNUSED, int dith_y EINA_UNUSED, DATA8 *pal EINA_UNUSED)
310{ 310{
311# ifndef BUILD_NEON 311#ifdef TILE_ROTATE
312# ifdef TILE_ROTATE
313 blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ; 312 blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ;
314# else 313#else
314# ifndef BUILD_NEON
315 DATA32 *src_ptr; 315 DATA32 *src_ptr;
316 DATA32 *dst_ptr; 316 DATA32 *dst_ptr;
317 int x, y; 317 int x, y;
318 318
319 dst_ptr = (DATA32 *)dst;
320 CONVERT_LOOP_START_ROT_90();
321
322 *dst_ptr = *src_ptr;
323
324 CONVERT_LOOP_END_ROT_90();
325# elif defined BUILD_NEON_INTRINSICS
326 DATA32 *src_ptr;
327 DATA32 *dst_ptr;
328 int x, y;
329
319 dst_ptr = (DATA32 *)dst; 330 dst_ptr = (DATA32 *)dst;
320 CONVERT_LOOP_START_ROT_90(); 331 CONVERT_LOOP_START_ROT_90();
321 332
322 *dst_ptr = *src_ptr; 333 *dst_ptr = *src_ptr;
323 334
324 CONVERT_LOOP_END_ROT_90(); 335 CONVERT_LOOP_END_ROT_90();
325# endif
326
327# else 336# else
328
329# ifdef TILE_ROTATE
330 blt_rotated_90_8888((DATA8 *)dst, dst_jump+w, (const DATA8 *)src, src_jump+h, w, h) ;
331# else
332 if ((w & 1) || (h & 1)) 337 if ((w & 1) || (h & 1))
333 { 338 {
334 /* Rarely (if ever) if ever: so slow path is fine */ 339 /* Rarely (if ever) if ever: so slow path is fine */
@@ -345,7 +350,7 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int
345 } 350 }
346 else 351 else
347 { 352 {
348# define AP "convert_rgba32_rot_90_" 353# define AP "convert_rgba32_rot_90_"
349 asm volatile ( 354 asm volatile (
350 ".fpu neon \n\t" 355 ".fpu neon \n\t"
351 " mov %[s1], %[src] \n\t" 356 " mov %[s1], %[src] \n\t"
@@ -417,9 +422,9 @@ evas_common_convert_rgba_to_32bpp_rgb_8888_rot_90 (DATA32 *src, DATA8 *dst, int
417 422
418 ); 423 );
419 } 424 }
420# undef AP 425# undef AP
421# endif
422# endif 426# endif
427#endif
423 return; 428 return;
424} 429}
425 430