changeset 2799:0d7fd1655a89

.align 16
author michael
date Sat, 10 Nov 2001 19:46:04 +0000
parents ee2cd36a81a2
children 7847d6b7ad3d
files postproc/rgb2rgb.c postproc/rgb2rgb_template.c postproc/swscale.c postproc/swscale_template.c
diffstat 4 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/postproc/rgb2rgb.c	Sat Nov 10 18:40:49 2001 +0000
+++ b/postproc/rgb2rgb.c	Sat Nov 10 19:46:04 2001 +0000
@@ -585,6 +585,7 @@
 #ifdef HAVE_MMX
 	asm volatile (
 		"xorl %%eax, %%eax		\n\t"
+		".align 16			\n\t"
 		"1:				\n\t"
 		PREFETCH" 32(%0, %%eax)		\n\t"
 		"movq (%0, %%eax), %%mm0	\n\t"
@@ -635,6 +636,7 @@
 //FIXME handle 2 lines a once (fewer prefetch, reuse some chrom, but very likely limited by mem anyway)
 		asm volatile(
 			"xorl %%eax, %%eax		\n\t"
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 32(%1, %%eax, 2)	\n\t"
 			PREFETCH" 32(%2, %%eax)		\n\t"
@@ -708,6 +710,7 @@
 			"xorl %%eax, %%eax		\n\t"
 			"pcmpeqw %%mm7, %%mm7		\n\t"
 			"psrlw $8, %%mm7		\n\t" // FF,00,FF,00...
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 64(%0, %%eax, 4)	\n\t"
 			"movq (%0, %%eax, 4), %%mm0	\n\t" // YUYV YUYV(0)
@@ -757,6 +760,7 @@
 
 		asm volatile(
 			"xorl %%eax, %%eax		\n\t"
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 64(%0, %%eax, 4)	\n\t"
 			"movq (%0, %%eax, 4), %%mm0	\n\t" // YUYV YUYV(0)
--- a/postproc/rgb2rgb_template.c	Sat Nov 10 18:40:49 2001 +0000
+++ b/postproc/rgb2rgb_template.c	Sat Nov 10 19:46:04 2001 +0000
@@ -585,6 +585,7 @@
 #ifdef HAVE_MMX
 	asm volatile (
 		"xorl %%eax, %%eax		\n\t"
+		".align 16			\n\t"
 		"1:				\n\t"
 		PREFETCH" 32(%0, %%eax)		\n\t"
 		"movq (%0, %%eax), %%mm0	\n\t"
@@ -635,6 +636,7 @@
 //FIXME handle 2 lines a once (fewer prefetch, reuse some chrom, but very likely limited by mem anyway)
 		asm volatile(
 			"xorl %%eax, %%eax		\n\t"
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 32(%1, %%eax, 2)	\n\t"
 			PREFETCH" 32(%2, %%eax)		\n\t"
@@ -708,6 +710,7 @@
 			"xorl %%eax, %%eax		\n\t"
 			"pcmpeqw %%mm7, %%mm7		\n\t"
 			"psrlw $8, %%mm7		\n\t" // FF,00,FF,00...
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 64(%0, %%eax, 4)	\n\t"
 			"movq (%0, %%eax, 4), %%mm0	\n\t" // YUYV YUYV(0)
@@ -757,6 +760,7 @@
 
 		asm volatile(
 			"xorl %%eax, %%eax		\n\t"
+			".align 16			\n\t"
 			"1:				\n\t"
 			PREFETCH" 64(%0, %%eax, 4)	\n\t"
 			"movq (%0, %%eax, 4), %%mm0	\n\t" // YUYV YUYV(0)
--- a/postproc/swscale.c	Sat Nov 10 18:40:49 2001 +0000
+++ b/postproc/swscale.c	Sat Nov 10 19:46:04 2001 +0000
@@ -143,6 +143,7 @@
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%0, %%eax, 2), %%mm0	\n\t" /*buf0[eax]*/\
 		"movq (%1, %%eax, 2), %%mm1	\n\t" /*buf1[eax]*/\
@@ -196,6 +197,7 @@
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"movq %%mm5, asm_uvalpha1	\n\t"\
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm2	\n\t" /* uvbuf0[eax]*/\
 		"movq (%3, %%eax), %%mm3	\n\t" /* uvbuf1[eax]*/\
@@ -260,6 +262,7 @@
 
 #define YSCALEYUV2RGB1 \
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm3	\n\t" /* uvbuf0[eax]*/\
 		"movq 4096(%2, %%eax), %%mm4	\n\t" /* uvbuf0[eax+2048]*/\
@@ -308,6 +311,7 @@
 // do vertical chrominance interpolation
 #define YSCALEYUV2RGB1b \
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm2	\n\t" /* uvbuf0[eax]*/\
 		"movq (%3, %%eax), %%mm3	\n\t" /* uvbuf1[eax]*/\
@@ -1306,6 +1310,7 @@
 		"xorl %%eax, %%eax		\n\t" // i
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
+		".align 16			\n\t"
 		"1:				\n\t"
 		"movzbl  (%0, %%ebx), %%edi	\n\t" //src[xx]
 		"movzbl 1(%0, %%ebx), %%esi	\n\t" //src[xx+1]
@@ -1437,6 +1442,7 @@
 		"xorl %%eax, %%eax		\n\t" // i
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
+		".align 16			\n\t"
 		"1:				\n\t"
 		"movl %0, %%esi			\n\t"
 		"movzbl  (%%esi, %%ebx), %%edi	\n\t" //src[xx]
--- a/postproc/swscale_template.c	Sat Nov 10 18:40:49 2001 +0000
+++ b/postproc/swscale_template.c	Sat Nov 10 19:46:04 2001 +0000
@@ -143,6 +143,7 @@
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%0, %%eax, 2), %%mm0	\n\t" /*buf0[eax]*/\
 		"movq (%1, %%eax, 2), %%mm1	\n\t" /*buf1[eax]*/\
@@ -196,6 +197,7 @@
 		"punpcklwd %%mm5, %%mm5		\n\t"\
 		"movq %%mm5, asm_uvalpha1	\n\t"\
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm2	\n\t" /* uvbuf0[eax]*/\
 		"movq (%3, %%eax), %%mm3	\n\t" /* uvbuf1[eax]*/\
@@ -260,6 +262,7 @@
 
 #define YSCALEYUV2RGB1 \
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm3	\n\t" /* uvbuf0[eax]*/\
 		"movq 4096(%2, %%eax), %%mm4	\n\t" /* uvbuf0[eax+2048]*/\
@@ -308,6 +311,7 @@
 // do vertical chrominance interpolation
 #define YSCALEYUV2RGB1b \
 		"xorl %%eax, %%eax		\n\t"\
+		".align 16			\n\t"\
 		"1:				\n\t"\
 		"movq (%2, %%eax), %%mm2	\n\t" /* uvbuf0[eax]*/\
 		"movq (%3, %%eax), %%mm3	\n\t" /* uvbuf1[eax]*/\
@@ -1306,6 +1310,7 @@
 		"xorl %%eax, %%eax		\n\t" // i
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
+		".align 16			\n\t"
 		"1:				\n\t"
 		"movzbl  (%0, %%ebx), %%edi	\n\t" //src[xx]
 		"movzbl 1(%0, %%ebx), %%esi	\n\t" //src[xx+1]
@@ -1437,6 +1442,7 @@
 		"xorl %%eax, %%eax		\n\t" // i
 		"xorl %%ebx, %%ebx		\n\t" // xx
 		"xorl %%ecx, %%ecx		\n\t" // 2*xalpha
+		".align 16			\n\t"
 		"1:				\n\t"
 		"movl %0, %%esi			\n\t"
 		"movzbl  (%%esi, %%ebx), %%edi	\n\t" //src[xx]