summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2019-03-25 16:28:06 -0700
committerDylan Baker <dylan@pnwbakers.com>2019-03-27 10:54:50 -0700
commit0ea37df4286e913b686ff0e85e686b6e6a494bda (patch)
tree7cb40375ec907a92cadf006cc666872cff6fe229
parent2065a07e989b7f4041eb21a109c3cfedce3bfc39 (diff)
meson: store ARM SIMD and NEON tests as text files
This is unfortunately required to make the tests work correctly, as otherwise meson assumes that the files are C code not assembly. I've opened https://github.com/mesonbuild/meson/issues/5151, to discuss fixing the issue in meson upstream. Fixes #29
-rw-r--r--arm-simd-test.S10
-rw-r--r--meson.build32
-rw-r--r--neon-test.S12
3 files changed, 24 insertions, 30 deletions
diff --git a/arm-simd-test.S b/arm-simd-test.S
new file mode 100644
index 0000000..910c814
--- /dev/null
+++ b/arm-simd-test.S
@@ -0,0 +1,10 @@
+.text
+.arch armv6
+.object_arch armv4
+.arm
+.altmacro
+#ifndef __ARM_EABI__
+#error EABI is required (to be sure that calling conventions are compatible)
+#endif
+pld [r0]
+uqadd8 r0, r0, r0
diff --git a/meson.build b/meson.build
index 6b247d8..7bfbd99 100644
--- a/meson.build
+++ b/meson.build
@@ -224,20 +224,7 @@ use_armv6_simd = get_option('arm-simd')
have_armv6_simd = false
if not use_armv6_simd.disabled()
if host_machine.cpu_family() == 'arm'
- if cc.compiles('''
- .text
- .arch armv6
- .object_arch armv4
- .arm
- .altmacro
- #ifndef __ARM_EABI__
- #error EABI is required (to be sure that calling conventions are compatible)
- #endif
- pld [r0]
- uqadd8 r0, r0, r0
- ''',
- args : ['-x assembler-with-cpp'],
- name : 'ARMv6 SIMD Intrinsic Support')
+ if cc.compiles(files('arm-simd-test.S'), name : 'ARMv6 SIMD Intrinsic Support')
have_armv6_simd = true
endif
endif
@@ -253,22 +240,7 @@ use_neon = get_option('neon')
have_neon = false
if not use_neon.disabled()
if host_machine.cpu_family() == 'arm'
- if cc.compiles('''
- .text
- .fpu neon
- .arch armv7a
- .object_arch armv4
- .eabi_attribute 10, 0
- .arm
- .altmacro
- #ifndef __ARM_EABI__
- #error EABI is required (to be sure that calling conventions are compatible)
- #endif
- pld [r0]
- vmovn.u16 d0, q0
- ''',
- args : ['-x assembler-with-cpp'],
- name : 'NEON Intrinsic Support')
+ if cc.compiles(files('neon-test.S'), name : 'NEON Intrinsic Support')
have_neon = true
endif
endif
diff --git a/neon-test.S b/neon-test.S
new file mode 100644
index 0000000..c30a399
--- /dev/null
+++ b/neon-test.S
@@ -0,0 +1,12 @@
+.text
+.fpu neon
+.arch armv7a
+.object_arch armv4
+.eabi_attribute 10, 0
+.arm
+.altmacro
+#ifndef __ARM_EABI__
+#error EABI is required (to be sure that calling conventions are compatible)
+#endif
+pld [r0]
+vmovn.u16 d0, q0