diff options
author | joerg <joerg@pkgsrc.org> | 2015-02-28 23:41:58 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2015-02-28 23:41:58 +0000 |
commit | a1882b9476217bddce18cbda89b154b337f93ae4 (patch) | |
tree | 6f49b34c7498d1d20e05b65c681ac215cce5a2a7 /audio/pulseaudio/patches | |
parent | 4b0748efd968fbc57f1b1dc9ac756f5537458a5b (diff) | |
download | pkgsrc-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.c | 23 |
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) { |