Evas: Neon: Explicitly set the .fpu flag for neon.

This means you should not need to set any special compiler flags; which should
mean gcc will generate non-neon specific asm (unless you tell it to).  This
means it is possible to build an armv6 binary with neon suppor (as we always
meant to to do).

SVN revision: 55307
This commit is contained in:
Brett Nash 2010-12-06 01:50:32 +00:00
parent d15d81161f
commit 19c28b345f
7 changed files with 10 additions and 0 deletions

View File

@ -78,6 +78,7 @@ evas_common_cpu_neon_test(void)
//#if defined(__ARM_ARCH__) && (__ARM_ARCH__ >= 70)
#ifdef BUILD_NEON
asm volatile (
".fpu neon \n\t"
"vqadd.u8 d0, d1, d0\n"
);
#endif

View File

@ -6,6 +6,7 @@ _op_blend_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m __UNUSED__, DATA32 c, DATA32
DATA32 *e, *tmp = 0;
#define AP "B_C_DP"
asm volatile (
".fpu neon \n\t"
"vdup.u32 q6, %[c] \n\t"
"vmov.i8 q5, #1 \n\t"
"vmvn.u8 q7,q6 \n\t"

View File

@ -25,6 +25,7 @@ _op_blend_mas_c_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, int
#define AP "blend_mas_c_dp_"
asm volatile (
".fpu neon \n\t"
" vdup.i32 q15, %[c] \n\t"
" vmov.i8 q14, #1 \n\t"
@ -205,6 +206,7 @@ _op_blend_mas_can_dp_neon(DATA32 *s __UNUSED__, DATA8 *m, DATA32 c, DATA32 *d, i
#define AP "_blend_mas_can_dp_neon_"
asm volatile (
".fpu neon \n\t"
"vdup.u32 q9, %[c] \n\t"
"vmov.i8 q15, #1 \n\t"
"vmov.i8 q14, #0 \n\t"

View File

@ -6,6 +6,7 @@ static void
_op_blend_p_c_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, int l) {
#define AP "blend_p_c_dp_"
asm volatile (
".fpu neon \n\t"
// Load 'c'
"vdup.u32 q7, %[c] \n\t"
"vmov.i8 q6, #1 \n\t"
@ -202,6 +203,7 @@ _op_blend_pan_caa_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c, DATA32 *d, i
#define AP "_op_blend_pan_caa_dp_"
DATA32 *e = d + l, *tmp = (void*)73;
asm volatile (
".fpu neon \n\t"
/* Set up 'c' */
"vdup.u8 d14, %[c] \n\t"
"vmov.i8 d15, #1 \n\t"

View File

@ -5,6 +5,7 @@ static void
_op_blend_p_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
#define AP "blend_p_dp_"
asm volatile (
".fpu neon \n\t"
//** init
"vmov.i8 q8, $0x1 \n\t"
@ -226,6 +227,7 @@ _op_blend_pas_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
#define AP "blend_pas_dp_"
DATA32 *e = d + l,*tmp = e + 32,*pl=(void*)912;
asm volatile (
".fpu neon \n\t"
"vmov.i8 q8, #1 \n\t"
AP"loopchoose: \n\t"
// If aliged - go as fast we can

View File

@ -6,6 +6,7 @@ _op_copy_c_dp_neon(DATA32 *s, DATA8 *m, DATA32 c, DATA32 *d, int l) {
#define AP "COPY_C_DP_"
uint32_t *e = d + l,*tmp;
asm volatile (
".fpu neon \n\t"
"vdup.i32 q0, %[c] \n\t"

View File

@ -35,6 +35,7 @@ _op_copy_p_dp_neon(DATA32 *s, DATA8 *m __UNUSED__, DATA32 c __UNUSED__, DATA32 *
s3 = s + 8;
s4 = s + 12;
asm volatile (
".fpu neon \n\t"
"asmloop2:\n\t"
"cmp %[e], %[d]\n\t"
"vld1.32 {d16-d17}, [%[s]]!\n\t"