summaryrefslogtreecommitdiff
path: root/audio/pulseaudio/patches
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2015-02-28 23:41:58 +0000
committerjoerg <joerg@pkgsrc.org>2015-02-28 23:41:58 +0000
commita1882b9476217bddce18cbda89b154b337f93ae4 (patch)
tree6f49b34c7498d1d20e05b65c681ac215cce5a2a7 /audio/pulseaudio/patches
parent4b0748efd968fbc57f1b1dc9ac756f5537458a5b (diff)
downloadpkgsrc-a1882b9476217bddce18cbda89b154b337f93ae4.tar.gz
Use NEON intrinsics in Clang to avoid the unsupported assembler
modifiers. It is beyond common sense why pulseaudio devs considered the mechanical conversion to inline asm an improvement...
Diffstat (limited to 'audio/pulseaudio/patches')
-rw-r--r--audio/pulseaudio/patches/patch-src_pulsecore_mix__neon.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/audio/pulseaudio/patches/patch-src_pulsecore_mix__neon.c b/audio/pulseaudio/patches/patch-src_pulsecore_mix__neon.c
new file mode 100644
index 00000000000..6b653a55080
--- /dev/null
+++ b/audio/pulseaudio/patches/patch-src_pulsecore_mix__neon.c
@@ -0,0 +1,23 @@
+$NetBSD: patch-src_pulsecore_mix__neon.c,v 1.1 2015/02/28 23:41:58 joerg Exp $
+
+--- src/pulsecore/mix_neon.c.orig 2015-02-25 15:03:12.000000000 +0000
++++ src/pulsecore/mix_neon.c
+@@ -175,6 +175,10 @@ static void pa_mix2_ch4_s16ne_neon(pa_mi
+
+ int32x4_t sv0, sv1;
+
++#ifdef __clang__
++ sv0 = vld1q_s32(streams[0].linear);
++ sv1 = vld1q_s32(streams[1].linear);
++#else
+ __asm__ __volatile__ (
+ "vld1.s32 %h[sv0], [%[lin0]] \n\t"
+ "vld1.s32 %h[sv1], [%[lin1]] \n\t"
+@@ -182,6 +186,7 @@ static void pa_mix2_ch4_s16ne_neon(pa_mi
+ : [lin0] "r" (streams[0].linear), [lin1] "r" (streams[1].linear)
+ : /* clobber list */
+ );
++#endif
+
+ length /= sizeof(int16_t);
+ for (; length >= 4; length -= 4) {