Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Mar 2005 20:12:38 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 72652 for review
Message-ID:  <200503072012.j27KCcmM014281@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=72652

Change 72652 by jhb@jhb_slimer on 2005/03/07 20:11:53

	- Use + constraints for registers where possible.
	- sfence doesn't need to clobber memory.

Affected files ...

.. //depot/projects/smpng/sys/amd64/include/bus_amd64.h#6 edit

Differences ...

==== //depot/projects/smpng/sys/amd64/include/bus_amd64.h#6 (text+ko) ====

@@ -290,8 +290,8 @@
 		1:	movb (%2),%%al				\n\
 			stosb					\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+D" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory");
 #endif
 	}
@@ -319,8 +319,8 @@
 		1:	movw (%2),%%ax				\n\
 			stosw					\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+D" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory");
 #endif
 	}
@@ -348,8 +348,8 @@
 		1:	movl (%2),%%eax				\n\
 			stosl					\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+D" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory");
 #endif
 	}
@@ -398,8 +398,7 @@
 			stosb					\n\
 			incl %2					\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count), "=d" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+d" (_port_)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -415,8 +414,7 @@
 			cld					\n\
 			repne					\n\
 			movsb"					:
-		    "=D" (addr), "=c" (count), "=S" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+S" (_port_)	::
 		    "memory", "cc");
 #endif
 	}
@@ -440,8 +438,7 @@
 			stosw					\n\
 			addl $2,%2				\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count), "=d" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+d" (_port_)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -457,8 +454,7 @@
 			cld					\n\
 			repne					\n\
 			movsw"					:
-		    "=D" (addr), "=c" (count), "=S" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+S" (_port_)	::
 		    "memory", "cc");
 #endif
 	}
@@ -482,8 +478,7 @@
 			stosl					\n\
 			addl $4,%2				\n\
 			loop 1b"				:
-		    "=D" (addr), "=c" (count), "=d" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+d" (_port_)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -499,8 +494,7 @@
 			cld					\n\
 			repne					\n\
 			movsl"					:
-		    "=D" (addr), "=c" (count), "=S" (_port_)	:
-		    "0" (addr), "1" (count), "2" (_port_)	:
+		    "+D" (addr), "+c" (count), "+S" (_port_)	::
 		    "memory", "cc");
 #endif
 	}
@@ -629,8 +623,8 @@
 		1:	lodsb					\n\
 			movb %%al,(%2)				\n\
 			loop 1b"				:
-		    "=S" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+S" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -658,8 +652,8 @@
 		1:	lodsw					\n\
 			movw %%ax,(%2)				\n\
 			loop 1b"				:
-		    "=S" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+S" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -687,8 +681,8 @@
 		1:	lodsl					\n\
 			movl %%eax,(%2)				\n\
 			loop 1b"				:
-		    "=S" (addr), "=c" (count)			:
-		    "r" (bsh + offset), "0" (addr), "1" (count)	:
+		    "+S" (addr), "+c" (count)			:
+		    "r" (bsh + offset)				:
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -738,8 +732,7 @@
 			outb %%al,%w0				\n\
 			incl %0					\n\
 			loop 1b"				:
-		    "=d" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+d" (_port_), "+S" (addr), "+c" (count)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -755,8 +748,7 @@
 			cld					\n\
 			repne					\n\
 			movsb"					:
-		    "=D" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+D" (_port_), "+S" (addr), "+c" (count)	::
 		    "memory", "cc");
 #endif
 	}
@@ -780,8 +772,7 @@
 			outw %%ax,%w0				\n\
 			addl $2,%0				\n\
 			loop 1b"				:
-		    "=d" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+d" (_port_), "+S" (addr), "+c" (count)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -797,8 +788,7 @@
 			cld					\n\
 			repne					\n\
 			movsw"					:
-		    "=D" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+D" (_port_), "+S" (addr), "+c" (count)	::
 		    "memory", "cc");
 #endif
 	}
@@ -822,8 +812,7 @@
 			outl %%eax,%w0				\n\
 			addl $4,%0				\n\
 			loop 1b"				:
-		    "=d" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+d" (_port_), "+S" (addr), "+c" (count)	::
 		    "%eax", "memory", "cc");
 #endif
 	}
@@ -839,8 +828,7 @@
 			cld					\n\
 			repne					\n\
 			movsl"					:
-		    "=D" (_port_), "=S" (addr), "=c" (count)	:
-		    "0" (_port_), "1" (addr), "2" (count)	:
+		    "+D" (_port_), "+S" (addr), "+c" (count)	::
 		    "memory", "cc");
 #endif
 	}
@@ -1217,7 +1205,7 @@
 	if (flags & BUS_SPACE_BARRIER_READ)
 		__asm __volatile("lfence" : : : "memory");
 	else
-		__asm __volatile("sfence" : : : "memory");
+		__asm __volatile("sfence");
 #endif
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503072012.j27KCcmM014281>