From owner-p4-projects@FreeBSD.ORG Mon Mar 7 20:12:39 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2C9216A4D0; Mon, 7 Mar 2005 20:12:38 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8677016A4CE for ; Mon, 7 Mar 2005 20:12:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5BB6343D46 for ; Mon, 7 Mar 2005 20:12:38 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j27KCcnd014284 for ; Mon, 7 Mar 2005 20:12:38 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j27KCcmM014281 for perforce@freebsd.org; Mon, 7 Mar 2005 20:12:38 GMT (envelope-from jhb@freebsd.org) Date: Mon, 7 Mar 2005 20:12:38 GMT Message-Id: <200503072012.j27KCcmM014281@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 72652 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Mar 2005 20:12:39 -0000 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 }