Fix ARM64 build.

Provide the correct defines and APIs on ARM64, which always has NEON.

TEST=local ARM64 Chromium build passes.
BUG=chromium:415393
R=rtoy@google.com

Review URL: https://webrtc-codereview.appspot.com/26739004

git-svn-id: http://webrtc.googlecode.com/svn/deps/third_party/openmax@7391 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/dl/dl.gyp b/dl/dl.gyp
index ecb3450..a4644f1 100644
--- a/dl/dl.gyp
+++ b/dl/dl.gyp
@@ -34,6 +34,13 @@
           }],
         ],
       }],
+      ['target_arch=="arm64"', {
+        # Enable build-time NEON selection.
+        'defines': ['DL_ARM_NEON',],
+        'direct_dependent_settings': {
+          'defines': ['DL_ARM_NEON',],
+        },
+      }],
     ],
   },
   'targets': [
diff --git a/dl/sp/api/omxSP.h b/dl/sp/api/omxSP.h
index 0565fe9..2827379 100644
--- a/dl/sp/api/omxSP.h
+++ b/dl/sp/api/omxSP.h
@@ -2244,16 +2244,6 @@
     OMX_FC32 *pDst,
     const OMXFFTSpec_C_FC32 *pFFTSpec
 );
-#ifdef __arm__
-/*
- * Non-NEON version
- */
-OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
-    const OMX_FC32 *pSrc,
-    OMX_FC32 *pDst,
-    const OMXFFTSpec_C_FC32 *pFFTSpec
-);
-#endif
 
 /**
  * Function:  omxSP_FFTFwd_RToCCS_F32_Sfs
@@ -2491,16 +2481,6 @@
     OMX_FC32 *pDst,
     const OMXFFTSpec_C_FC32 *pFFTSpec
 );
-#ifdef __arm__
-/*
- * Non-NEON version
- */
-OMXResult omxSP_FFTInv_CToC_FC32_Sfs_vfp (
-    const OMX_FC32 *pSrc,
-    OMX_FC32 *pDst,
-    const OMXFFTSpec_C_FC32 *pFFTSpec
-);
-#endif
 
 /**
  * Function:  omxSP_FFTInv_CCSToR_F32_Sfs
@@ -2553,7 +2533,7 @@
  * This block sets things up appropriately for run-time or build-time selection
  * of NEON implementations.
  */
-#if defined(__arm__)
+#if defined(__arm__) || defined(__aarch64__)
 /*
  * Generic versions. Just like their *_Sfs counterparts, but automatically
  * detect whether NEON is available or not and choose the appropriate routine.
@@ -2591,13 +2571,25 @@
     OMX_F32* pDst,
     const OMXFFTSpec_R_F32* pFFTSpec
 );
+
+OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
+    const OMX_FC32 *pSrc,
+    OMX_FC32 *pDst,
+    const OMXFFTSpec_C_FC32 *pFFTSpec
+);
+
+OMXResult omxSP_FFTInv_CToC_FC32_Sfs_vfp (
+    const OMX_FC32 *pSrc,
+    OMX_FC32 *pDst,
+    const OMXFFTSpec_C_FC32 *pFFTSpec
+);
 #endif  /* defined(DL_ARM_NEON_OPTIONAL) || !defined(DL_ARM_NEON) */
 
 #else
 /* Build-time non-ARM selection. */
 #define omxSP_FFTInv_RToCCS_F32 omxSP_FFTInv_RToCCS_F32_Sfs
 #define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_Sfs
-#endif  /* defined(__arm__) */
+#endif  /* defined(__arm__) || defined(__aarch64__) */
 
 #ifdef __cplusplus
 }