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>