diff options
author | Yury Usishchev <y.usishchev@samsung.com> | 2015-04-15 17:21:33 +0200 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2015-05-07 09:53:08 +0200 |
commit | 71eec44ccc9ab43e728ba986fadce6c6cfd2ff7c (patch) | |
tree | 9ed9801c7a1534f69cff124c2071e53d8845d35a /src/lib/evas/common/evas_op_copy | |
parent | 88b30ef28c47106891d44f62798424c745ec1b8c (diff) |
evas: enable NEON-optimized code for aarch64.
Summary:
Add new define, BUILD_NEON_INTRINSICS to control whether NEON inline code or
NEON intrinsics should be built.
GCC NEON intrinsics can be built both for armv7 and armv8. However NEON inline
code can be built only for armv7.
@feature
Reviewers: raster, stefan_schmidt, cedric
Subscribers: cedric, stefan_schmidt
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D2309
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Diffstat (limited to '')
-rw-r--r-- | src/lib/evas/common/evas_op_copy/op_copy_color_neon.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/evas/common/evas_op_copy/op_copy_color_neon.c b/src/lib/evas/common/evas_op_copy/op_copy_color_neon.c index 96310cdf3a..009bd750ea 100644 --- a/src/lib/evas/common/evas_op_copy/op_copy_color_neon.c +++ b/src/lib/evas/common/evas_op_copy/op_copy_color_neon.c | |||
@@ -3,6 +3,14 @@ | |||
3 | #ifdef BUILD_NEON | 3 | #ifdef BUILD_NEON |
4 | static void | 4 | static void |
5 | _op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { | 5 | _op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { |
6 | #ifdef BUILD_NEON_INTRINSICS | ||
7 | DATA32 *e; | ||
8 | UNROLL8_PLD_WHILE(d, l, e, | ||
9 | { | ||
10 | *d = c; | ||
11 | d++; | ||
12 | }); | ||
13 | #else | ||
6 | #define AP "COPY_C_DP_" | 14 | #define AP "COPY_C_DP_" |
7 | uint32_t *e = d + l,*tmp; | 15 | uint32_t *e = d + l,*tmp; |
8 | asm volatile ( | 16 | asm volatile ( |
@@ -85,6 +93,7 @@ _op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) { | |||
85 | 93 | ||
86 | 94 | ||
87 | ); | 95 | ); |
96 | #endif | ||
88 | } | 97 | } |
89 | 98 | ||
90 | #define _op_copy_cn_dp_neon _op_copy_c_dp_neon | 99 | #define _op_copy_cn_dp_neon _op_copy_c_dp_neon |