diff options
Diffstat (limited to 'muse/al/dsp.h')
-rw-r--r-- | muse/al/dsp.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/muse/al/dsp.h b/muse/al/dsp.h index d8da11dc..6c7123ac 100644 --- a/muse/al/dsp.h +++ b/muse/al/dsp.h @@ -23,7 +23,6 @@ namespace AL { - //--------------------------------------------------------- // f_max //--------------------------------------------------------- @@ -65,6 +64,14 @@ class Dsp { for (unsigned i = 0; i < n; ++i) dst[i] += src[i]; } + virtual void cpy(float* dst, float* src, unsigned n) { +#if defined(ARCH_X86) || defined(ARCH_X86_64) + register unsinged long int dummy; + __asm__ __volatile__ "rep; movsl" :"=&D"(dst), "=&S"(src), "=&c"(dummy) :"0" (to), "1" (from),"2" (n) : "memory"); +#else + memcpy(dst, src, sizeof(float) * n); +#endif + } }; extern void initDsp(); |