summaryrefslogtreecommitdiff
blob: a168263f529be68aedf659d24ff2836f3f989cb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
--- filter/Absdiff.c	2002-08-25 17:54:47.000000000 -0400
+++ filter/Absdiff.c?rt=sdlcam&r=1.3&p=1	2003-09-10 00:33:39.213153784 -0400
@@ -33,53 +33,52 @@
 #ifdef MMX
 /* {{{ D = [A-B] OR [B-A] ; [] mean sturated to 0 */	
 	if (len < 8) return 0;              // image size must be at least 8 bytes 
-	asm volatile ("
-		push		%%ebx
-		push		%%ecx
-		push		%%esi
-		push		%%edi
-		mov          	%3, %%ecx
-		mov	     	%2, %%edi
-		mov	     	%1, %%ebx
-		mov	     	%0, %%esi
-		shr          	$5, %%ecx
-	.align 16             
-	.absdiff_MMX:
-		movq    	  (%%esi), %%mm0
-		movq    	 8(%%esi), %%mm1
-		movq    	16(%%esi), %%mm2
-		movq    	24(%%esi), %%mm3
-		movq    	  (%%ebx), %%mm4
-		movq    	 8(%%ebx), %%mm5
-		movq    	16(%%ebx), %%mm6
-		movq    	24(%%ebx), %%mm7
-		psubusb		%%mm4	 , %%mm0
-		psubusb 	%%mm5	 , %%mm1
-		psubusb 	%%mm6	 , %%mm2
-		psubusb 	%%mm7	 , %%mm3
-		psubusb		  (%%esi), %%mm4	
-		psubusb          8(%%esi), %%mm5
-		psubusb         16(%%esi), %%mm6
-		psubusb         24(%%esi), %%mm7
-		por		%%mm4	 , %%mm0	
-		por             %%mm5	 , %%mm1
-		por             %%mm6	 , %%mm2
-		por             %%mm7	 , %%mm3
-		movq    	%%mm0,   (%%edi)
-		movq    	%%mm1,  8(%%edi)
-		movq    	%%mm2, 16(%%edi)
-		movq    	%%mm3, 24(%%edi)
-		add          	$32, %%esi
-		add          	$32, %%edi
-		add          	$32, %%ebx
-		dec              %%ecx
-		jnz             .absdiff_MMX
-		emms                  
-		pop		%%edi
-		pop		%%esi
-		pop		%%ecx
-		pop		%%ebx
-		"
+	asm volatile (
+	"	push		%%ebx			\n"
+	"	push		%%ecx			\n"
+	"	push		%%esi			\n"
+	"	push		%%edi                   \n"
+	"	mov          	%3, %%ecx		\n"
+	"	mov	     	%2, %%edi               \n"
+	"	mov	     	%1, %%ebx               \n"
+	"	mov	     	%0, %%esi               \n"
+	"	shr          	$5, %%ecx		\n"
+	".align 16                                      \n"
+	".absdiff_MMX:                                  \n"
+	"	movq    	  (%%esi), %%mm0        \n"
+	"	movq    	 8(%%esi), %%mm1	\n"
+	"	movq    	16(%%esi), %%mm2        \n"
+	"	movq    	24(%%esi), %%mm3        \n"
+	"	movq    	  (%%ebx), %%mm4        \n"
+	"	movq    	 8(%%ebx), %%mm5        \n"
+	"	movq    	16(%%ebx), %%mm6        \n"
+	"	movq    	24(%%ebx), %%mm7        \n"
+	"	psubusb		%%mm4	 , %%mm0        \n"
+	"	psubusb 	%%mm5	 , %%mm1        \n"
+	"	psubusb 	%%mm6	 , %%mm2        \n"
+	"	psubusb 	%%mm7	 , %%mm3        \n"
+	"	psubusb		  (%%esi), %%mm4	\n"
+	"	psubusb          8(%%esi), %%mm5	\n"
+	"	psubusb         16(%%esi), %%mm6        \n"
+	"	psubusb         24(%%esi), %%mm7        \n"
+	"	por		%%mm4	 , %%mm0	\n"
+	"	por             %%mm5	 , %%mm1        \n"
+	"	por             %%mm6	 , %%mm2        \n"
+	"	por             %%mm7	 , %%mm3        \n"
+	"	movq    	%%mm0,   (%%edi)        \n"
+	"	movq    	%%mm1,  8(%%edi)        \n"
+	"	movq    	%%mm2, 16(%%edi)        \n"
+	"	movq    	%%mm3, 24(%%edi)        \n"
+	"	add          	$32, %%esi              \n"
+	"	add          	$32, %%edi		\n"
+	"	add          	$32, %%ebx		\n"
+	"	dec              %%ecx			\n"
+	"	jnz             .absdiff_MMX		\n"
+	"	emms                  			\n"
+	"	pop		%%edi			\n"
+	"	pop		%%esi			\n"
+	"	pop		%%ecx			\n"
+	"	pop		%%ebx			\n"
 		: "=m"  (b)         // %0
 		:"m"    (a),        // %1
 		 "m"	(dst),		// %2