From cea612c7820bfb144a3e6e478758d7163d4a293b Mon Sep 17 00:00:00 2001 From: bde Date: Sat, 9 Jan 1999 13:00:27 +0000 Subject: Don't put operands in clobber lists, since this is dubious for old versions of gcc and broken for current versions of egcs. Submitted by: "John S. Dyson" but rewritten by me --- sys/i386/include/cpufunc.h | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'sys/i386') diff --git a/sys/i386/include/cpufunc.h b/sys/i386/include/cpufunc.h index 0e4697f..ce6bf05 100644 --- a/sys/i386/include/cpufunc.h +++ b/sys/i386/include/cpufunc.h @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: cpufunc.h,v 1.83 1999/01/08 19:17:45 bde Exp $ + * $Id: cpufunc.h,v 1.84 1999/01/08 19:51:02 bde Exp $ */ /* @@ -194,24 +194,27 @@ static __inline void insb(u_int port, void *addr, size_t cnt) { __asm __volatile("cld; rep; insb" - : : "d" (port), "D" (addr), "c" (cnt) - : "di", "cx", "memory"); + : "=D" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port) + : "memory"); } static __inline void insw(u_int port, void *addr, size_t cnt) { __asm __volatile("cld; rep; insw" - : : "d" (port), "D" (addr), "c" (cnt) - : "di", "cx", "memory"); + : "=D" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port) + : "memory"); } static __inline void insl(u_int port, void *addr, size_t cnt) { __asm __volatile("cld; rep; insl" - : : "d" (port), "D" (addr), "c" (cnt) - : "di", "cx", "memory"); + : "=D" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port) + : "memory"); } static __inline void @@ -324,24 +327,24 @@ static __inline void outsb(u_int port, const void *addr, size_t cnt) { __asm __volatile("cld; rep; outsb" - : : "d" (port), "S" (addr), "c" (cnt) - : "si", "cx"); + : "=S" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port)); } static __inline void outsw(u_int port, const void *addr, size_t cnt) { __asm __volatile("cld; rep; outsw" - : : "d" (port), "S" (addr), "c" (cnt) - : "si", "cx"); + : "=S" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port)); } static __inline void outsl(u_int port, const void *addr, size_t cnt) { __asm __volatile("cld; rep; outsl" - : : "d" (port), "S" (addr), "c" (cnt) - : "si", "cx"); + : "=S" (addr), "=c" (cnt) + : "0" (addr), "1" (cnt), "d" (port)); } static __inline void -- cgit v1.1