remap: cleanup assembler a little

This commit is contained in:
Wim Taymans 2009-08-26 19:29:21 +02:00
parent 9d25467964
commit 59070892ed
2 changed files with 26 additions and 29 deletions

View file

@ -51,7 +51,7 @@
" punpckl"#s" %%mm4, %%mm4 \n\t" \ " punpckl"#s" %%mm4, %%mm4 \n\t" \
" punpckh"#s" %%mm5, %%mm5 \n\t" \ " punpckh"#s" %%mm5, %%mm5 \n\t" \
" punpckl"#s" %%mm6, %%mm6 \n\t" \ " punpckl"#s" %%mm6, %%mm6 \n\t" \
" punpckh"#s" %%mm7, %%mm7 \n\t" \ " punpckh"#s" %%mm7, %%mm7 \n\t"
#define STORE_SAMPLES \ #define STORE_SAMPLES \
" movq %%mm0, (%0) \n\t" \ " movq %%mm0, (%0) \n\t" \
@ -67,32 +67,31 @@
#define HANDLE_SINGLE(s) \ #define HANDLE_SINGLE(s) \
" movd (%1), %%mm0 \n\t" \ " movd (%1), %%mm0 \n\t" \
" movq %%mm0, %%mm1 \n\t" \
" punpckl"#s" %%mm0, %%mm0 \n\t" \ " punpckl"#s" %%mm0, %%mm0 \n\t" \
" movq %%mm0, (%0) \n\t" \ " movq %%mm0, (%0) \n\t" \
" add $4, %1 \n\t" \ " add $4, %1 \n\t" \
" add $8, %0 \n\t" " add $8, %0 \n\t"
#define MONO_TO_STEREO(s) \ #define MONO_TO_STEREO(s) \
" mov %3, %2 \n\t" \ " mov %3, %2 \n\t" \
" sar $3, %2 \n\t" \ " sar $3, %2 \n\t" \
" cmp $0, %2 \n\t" \ " cmp $0, %2 \n\t" \
" je 2f \n\t" \ " je 2f \n\t" \
"1: \n\t" \ "1: \n\t" \
LOAD_SAMPLES \ LOAD_SAMPLES \
UNPACK_SAMPLES(s) \ UNPACK_SAMPLES(s) \
STORE_SAMPLES \ STORE_SAMPLES \
" dec %2 \n\t" \ " dec %2 \n\t" \
" jne 1b \n\t" \ " jne 1b \n\t" \
"2: \n\t" \ "2: \n\t" \
" mov %3, %2 \n\t" \ " mov %3, %2 \n\t" \
" and $7, %2 \n\t" \ " and $7, %2 \n\t" \
" je 4f \n\t" \ " je 4f \n\t" \
"3: \n\t" \ "3: \n\t" \
HANDLE_SINGLE(s) \ HANDLE_SINGLE(s) \
" dec %2 \n\t" \ " dec %2 \n\t" \
" jne 3b \n\t" \ " jne 3b \n\t" \
"4: \n\t" \ "4: \n\t" \
" emms \n\t" " emms \n\t"
#if defined (__i386__) || defined (__amd64__) #if defined (__i386__) || defined (__amd64__)

View file

@ -51,7 +51,7 @@
" punpckl"#s" %%xmm4, %%xmm4 \n\t" \ " punpckl"#s" %%xmm4, %%xmm4 \n\t" \
" punpckh"#s" %%xmm5, %%xmm5 \n\t" \ " punpckh"#s" %%xmm5, %%xmm5 \n\t" \
" punpckl"#s" %%xmm6, %%xmm6 \n\t" \ " punpckl"#s" %%xmm6, %%xmm6 \n\t" \
" punpckh"#s" %%xmm7, %%xmm7 \n\t" \ " punpckh"#s" %%xmm7, %%xmm7 \n\t"
#define STORE_SAMPLES \ #define STORE_SAMPLES \
" movdqu %%xmm0, (%0) \n\t" \ " movdqu %%xmm0, (%0) \n\t" \
@ -66,10 +66,9 @@
" add $128, %0 \n\t" " add $128, %0 \n\t"
#define HANDLE_SINGLE(s) \ #define HANDLE_SINGLE(s) \
" movd (%1), %%mm0 \n\t" \ " movd (%1), %%xmm0 \n\t" \
" movq %%mm0, %%mm1 \n\t" \ " punpckl"#s" %%xmm0, %%xmm0 \n\t" \
" punpckl"#s" %%mm0, %%mm0 \n\t" \ " movq %%xmm0, (%0) \n\t" \
" movq %%mm0, (%0) \n\t" \
" add $4, %1 \n\t" \ " add $4, %1 \n\t" \
" add $8, %0 \n\t" " add $8, %0 \n\t"
@ -92,8 +91,7 @@
HANDLE_SINGLE(s) \ HANDLE_SINGLE(s) \
" dec %2 \n\t" \ " dec %2 \n\t" \
" jne 3b \n\t" \ " jne 3b \n\t" \
"4: \n\t" \ "4: \n\t"
" emms \n\t"
static void remap_mono_to_stereo_sse (pa_remap_t *m, void *dst, const void *src, unsigned n) { static void remap_mono_to_stereo_sse (pa_remap_t *m, void *dst, const void *src, unsigned n) {
pa_reg_x86 temp; pa_reg_x86 temp;