meson: Enable VC4's NEON assembly support.

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Tested-by: Timothy Arceri <tarceri@itsqueeze.com>
diff --git a/meson.build b/meson.build
index ce97fa9..ddd7680 100644
--- a/meson.build
+++ b/meson.build
@@ -489,8 +489,8 @@
 
 # FIXME: enable asm when cross compiler
 # This is doable (autotools does it), but it's not of immediate concern
-if meson.is_cross_build()
-  message('Cross compiling, disabling asm')
+if meson.is_cross_build() and host_machine.cpu_family().startswith('x86')
+  message('Cross compiling, disabling x86/x86_64 asm')
   with_asm = false
 endif
 
diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build
index 38b47fb..572d4b4 100644
--- a/src/gallium/drivers/vc4/meson.build
+++ b/src/gallium/drivers/vc4/meson.build
@@ -81,6 +81,18 @@
   'vc4_uniforms.c',
 )
 
+libvc4_neon = []
+if with_asm_arch == 'arm'
+  libvc4_neon = static_library(
+    'vc4_neon',
+    'vc4_tiling_lt_neon.c',
+    include_directories : [
+      inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom
+    ],
+    c_args : '-mfpu=neon',
+  )
+endif
+
 simpenrose_c_args = []
 dep_simpenrose = dependency('simpenrose', required : false)
 if dep_simpenrose.found()
@@ -94,6 +106,7 @@
     inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom,
     inc_gallium_drivers, inc_drm_uapi,
   ],
+  link_with: libvc4_neon,
   c_args : [c_vis_args, simpenrose_c_args],
   cpp_args : [cpp_vis_args],
   dependencies : [dep_simpenrose, dep_libdrm, dep_valgrind],