From owner-p4-projects Tue Oct 1 13:16:45 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CD14D37B404; Tue, 1 Oct 2002 13:16:26 -0700 (PDT) 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 7B2F437B401 for ; Tue, 1 Oct 2002 13:16:26 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9105843E42 for ; Tue, 1 Oct 2002 13:16:25 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from freefall.freebsd.org (perforce@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id g91KGPCo078703 for ; Tue, 1 Oct 2002 13:16:25 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g91KGPGr078700 for perforce@freebsd.org; Tue, 1 Oct 2002 13:16:25 -0700 (PDT) Date: Tue, 1 Oct 2002 13:16:25 -0700 (PDT) Message-Id: <200210012016.g91KGPGr078700@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin Subject: PERFORCE change 18493 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=18493 Change 18493 by jhb@jhb_laptop on 2002/10/01 13:16:22 More fixups for i386 asm constraints that just haven't been committed. These ones bde@ objected to. Affected files ... .. //depot/projects/smpng/sys/i386/i386/math_emulate.c#6 edit .. //depot/projects/smpng/sys/i386/include/bus_at386.h#5 edit .. //depot/projects/smpng/sys/i386/include/bus_pc98.h#6 edit .. //depot/projects/smpng/sys/i386/include/cpufunc.h#20 edit .. //depot/projects/smpng/sys/i386/isa/bs/bsif.h#3 edit Differences ... ==== //depot/projects/smpng/sys/i386/i386/math_emulate.c#6 (text+ko) ==== @@ -760,8 +760,7 @@ if ((ti.sign = (ti.b < 0)) != 0) __asm__("notl %0 ; notl %1\n\t" "addl $1,%0 ; adcl $0,%1" - :"=r" (ti.a),"=r" (ti.b) - :"0" (ti.a),"1" (ti.b)); + :"+r" (ti.a),"+r" (ti.b)); int_to_real(&ti,tmp); } @@ -771,14 +770,13 @@ "addl %0,%0 ; adcl %1,%1\n\t" \ "addl %0,%0 ; adcl %1,%1\n\t" \ "addl %%ecx,%0 ; adcl %%ebx,%1" \ - : "=a" (low), "=d" (high) \ - : "0" (low), "1" (high) \ - : "cx", "bx") + : "+a" (low), "+d" (high) \ + :: "ecx", "ebx") #define ADD64(val, low, high) \ - __asm__("addl %4,%0 ; adcl $0,%1" \ - :"=r" (low),"=r" (high) \ - :"0" (low),"1" (high),"r" ((u_int32_t) (val))) + __asm__("addl %2,%0 ; adcl $0,%1" \ + :"+r" (low),"+r" (high) \ + :"r" ((u_int32_t) (val))) static void get_BCD(temp_real * tmp, struct trapframe * info, unsigned short code) @@ -885,16 +883,15 @@ if (ti.sign) __asm__("notl %0 ; notl %1\n\t" "addl $1,%0 ; adcl $0,%1" - :"=r" (ti.a),"=r" (ti.b) - :"0" (ti.a),"1" (ti.b)); + :"+r" (ti.a),"+r" (ti.b)); put_fs_long(ti.a,(u_int32_t *) addr); put_fs_long(ti.b,1 + (u_int32_t *) addr); } #define DIV10(low,high,rem) \ - __asm__("divl %6 ; xchgl %1,%2 ; divl %6" \ - :"=d" (rem),"=a" (low),"=r" (high) \ - :"0" (0),"1" (high),"2" (low),"c" (10)) + __asm__("divl %4 ; xchgl %1,%2 ; divl %4" \ + :"+d" (rem),"+a" (low),"+r" (high) \ + :"c" (10)) static void put_BCD(const temp_real * tmp,struct trapframe * info, unsigned short code) @@ -934,11 +931,12 @@ static void shift(int * c) { - __asm__("movl (%0),%%eax ; addl %%eax,(%0)\n\t" - "movl 4(%0),%%eax ; adcl %%eax,4(%0)\n\t" - "movl 8(%0),%%eax ; adcl %%eax,8(%0)\n\t" - "movl 12(%0),%%eax ; adcl %%eax,12(%0)" - ::"r" (c):"ax"); + __asm__("movl %0,%%eax ; addl %%eax,%0\n\t" + "movl %1,%%eax ; adcl %%eax,%1\n\t" + "movl %2,%%eax ; adcl %%eax,%2\n\t" + "movl %3,%%eax ; adcl %%eax,%3" + ::"m" (c[0]), "m" (c[1]), "m" (c[2]), "m" (c[3]) + :"eax"); } static void @@ -963,7 +961,7 @@ "adcl %%edx,8(%2)\n\t" "adcl $0,12(%2)" ::"S" (a),"c" (b),"D" (c) - :"ax","dx"); + :"eax","edx","memory"); } static void @@ -1009,18 +1007,19 @@ static void shift_left(int * c) { - __asm__ __volatile__("movl (%0),%%eax ; addl %%eax,(%0)\n\t" - "movl 4(%0),%%eax ; adcl %%eax,4(%0)\n\t" - "movl 8(%0),%%eax ; adcl %%eax,8(%0)\n\t" - "movl 12(%0),%%eax ; adcl %%eax,12(%0)" - ::"r" (c):"ax"); + __asm__ __volatile__("movl %0,%%eax ; addl %%eax,%0\n\t" + "movl %1,%%eax ; adcl %%eax,%1\n\t" + "movl %2,%%eax ; adcl %%eax,%2\n\t" + "movl %3,%%eax ; adcl %%eax,%3" + ::"m" (c[0]), "m" (c[1]), "m" (c[2]), "m" (c[3]) + :"eax"); } static void shift_right(int * c) { - __asm__("shrl $1,12(%0) ; rcrl $1,8(%0) ; rcrl $1,4(%0) ; rcrl $1,(%0)" - ::"r" (c)); + __asm__("shrl $1,%3 ; rcrl $1,%2 ; rcrl $1,%1 ; rcrl $1,%0" + ::"m" (c[0]), "m" (c[1]), "m" (c[2]), "m" (c[3])); } static int @@ -1032,7 +1031,7 @@ "movl 4(%1),%%eax ; sbbl %%eax,4(%2)\n\t" "movl 8(%1),%%eax ; sbbl %%eax,8(%2)\n\t" "movl 12(%1),%%eax ; sbbl %%eax,12(%2)\n\t" - "setae %%al":"=a" (ok):"c" (a),"d" (b)); + "setae %%al":"=a" (ok):"c" (a),"d" (b): "memory"); return ok; } @@ -1130,15 +1129,13 @@ #define NEGINT(a) \ __asm__("notl %0 ; notl %1 ; addl $1,%0 ; adcl $0,%1" \ - : "=r" (a->a), "=r" (a->b) \ - : "0" (a->a), "1" (a->b)) + : "+r" (a->a), "+r" (a->b)) static void signify(temp_real * a) { a->exponent += 2; __asm__("shrdl $2,%1,%0 ; shrl $2,%1" - :"=r" (a->a),"=r" (a->b) - :"0" (a->a),"1" (a->b)); + :"+r" (a->a),"+r" (a->b)); if (a->exponent < 0) NEGINT(a); a->exponent &= 0x7fff; @@ -1158,8 +1155,7 @@ while (a->b >= 0) { a->exponent--; __asm__("addl %0,%0 ; adcl %1,%1" - :"=r" (a->a),"=r" (a->b) - :"0" (a->a),"1" (a->b)); + :"+r" (a->a),"+r" (a->b)); } } @@ -1189,14 +1185,14 @@ b.b = 0; shift -= 32; } - __asm__("shrdl %4,%1,%0 ; shrl %4,%1" - :"=r" (b.a),"=r" (b.b) - :"0" (b.a),"1" (b.b),"c" ((char) shift)); + __asm__("shrdl %2,%1,%0 ; shrl %2,%1" + :"+r" (b.a),"+r" (b.b) + :"c" ((char) shift)); signify(&a); signify(&b); - __asm__("addl %4,%0 ; adcl %5,%1" - :"=r" (a.a),"=r" (a.b) - :"0" (a.a),"1" (a.b),"g" (b.a),"g" (b.b)); + __asm__("addl %2,%0 ; adcl %3,%1" + :"+r" (a.a),"+r" (a.b) + :"g" (b.a),"g" (b.b)); unsignify(&a); *result = a; } @@ -1227,8 +1223,7 @@ while (i && a->b >= 0) { i--; __asm__("addl %0,%0 ; adcl %1,%1" - :"=r" (a->a),"=r" (a->b) - :"0" (a->a),"1" (a->b)); + :"+r" (a->a),"+r" (a->b)); } a->exponent = i | sign; } @@ -1366,20 +1361,17 @@ case ROUND_NEAREST: if ((a->a & 0x7ff) > 0x400) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; case ROUND_DOWN: if ((a->exponent & 0x8000) && (a->b & 0xff)) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; case ROUND_UP: if (!(a->exponent & 0x8000) && (a->b & 0xff)) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; } } @@ -1412,41 +1404,37 @@ } b->exponent += shift; __asm__("shrdl %2,%1,%0" - :"=r" (underflow),"=r" (b->a) - :"c" ((char) shift),"0" (underflow),"1" (b->a)); + :"+r" (underflow),"+r" (b->a) + :"c" ((char) shift)); __asm__("shrdl %2,%1,%0" - :"=r" (b->a),"=r" (b->b) - :"c" ((char) shift),"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b) + :"c" ((char) shift)); __asm__("shrl %1,%0" - :"=r" (b->b) - :"c" ((char) shift),"0" (b->b)); + :"+r" (b->b) + :"c" ((char) shift)); switch ((int)ROUNDING) { case ROUND_NEAREST: - __asm__("addl %4,%5 ; adcl $0,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b) - ,"r" (0x7fffffff + (b->a & 1)) + __asm__("addl %2,%3 ; adcl $0,%0 ; adcl $0,%1" + :"+r" (b->a),"+r" (b->b) + :"r" (0x7fffffff + (b->a & 1)) ,"m" (*&underflow)); break; case ROUND_UP: if ((b->exponent >= 0) && underflow) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; case ROUND_DOWN: if ((b->exponent < 0) && underflow) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; } if (b->a || b->b) while (b->b >= 0) { b->exponent--; __asm__("addl %0,%0 ; adcl %1,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); } else b->exponent = 0; @@ -1494,33 +1482,30 @@ shift = 0; } __asm__("shrdl %2,%1,%0" - :"=r" (underflow),"=r" (b->a) - :"c" ((char) shift),"0" (underflow),"1" (b->a)); + :"+r" (underflow),"+r" (b->a) + :"c" ((char) shift)); __asm__("shrdl %2,%1,%0" - :"=r" (b->a),"=r" (b->b) - :"c" ((char) shift),"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b) + :"c" ((char) shift)); __asm__("shrl %1,%0" - :"=r" (b->b) - :"c" ((char) shift),"0" (b->b)); + :"+r" (b->b) + :"c" ((char) shift)); switch ((int)ROUNDING) { case ROUND_NEAREST: - __asm__("addl %4,%5 ; adcl $0,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b) - ,"r" (0x7fffffff + (b->a & 1)) + __asm__("addl %2,%3 ; adcl $0,%0 ; adcl $0,%1" + :"+r" (b->a),"+r" (b->b) + :"r" (0x7fffffff + (b->a & 1)) ,"m" (*&underflow)); break; case ROUND_UP: if (!b->sign && underflow) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; case ROUND_DOWN: if (b->sign && underflow) __asm__("addl $1,%0 ; adcl $0,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); break; } } @@ -1539,8 +1524,7 @@ while (b->b >= 0) { b->exponent--; __asm__("addl %0,%0 ; adcl %1,%1" - :"=r" (b->a),"=r" (b->b) - :"0" (b->a),"1" (b->b)); + :"+r" (b->a),"+r" (b->b)); } } ==== //depot/projects/smpng/sys/i386/include/bus_at386.h#5 (text+ko) ==== @@ -282,8 +282,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 } @@ -311,8 +311,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 } @@ -340,8 +340,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 } @@ -390,9 +390,8 @@ stosb \n\ incl %2 \n\ loop 1b" : - "=D" (addr), "=c" (count), "=d" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "%eax", "memory", "cc"); + "+D" (addr), "+c" (count), "+d" (_port_) : : + "%eax", "memory"); #endif } #endif @@ -407,9 +406,8 @@ cld \n\ repne \n\ movsb" : - "=D" (addr), "=c" (count), "=S" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "memory", "cc"); + "+D" (addr), "+c" (count), "+S" (_port_) : : + "memory"); #endif } #endif @@ -432,9 +430,8 @@ stosw \n\ addl $2,%2 \n\ loop 1b" : - "=D" (addr), "=c" (count), "=d" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "%eax", "memory", "cc"); + "+D" (addr), "+c" (count), "+d" (_port_) : : + "%eax", "memory"); #endif } #endif @@ -449,9 +446,8 @@ cld \n\ repne \n\ movsw" : - "=D" (addr), "=c" (count), "=S" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "memory", "cc"); + "+D" (addr), "+c" (count), "+S" (_port_) : : + "memory"); #endif } #endif @@ -474,9 +470,8 @@ stosl \n\ addl $4,%2 \n\ loop 1b" : - "=D" (addr), "=c" (count), "=d" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "%eax", "memory", "cc"); + "+D" (addr), "+c" (count), "+d" (_port_) : : + "%eax", "memory"); #endif } #endif @@ -491,9 +486,8 @@ cld \n\ repne \n\ movsl" : - "=D" (addr), "=c" (count), "=S" (_port_) : - "0" (addr), "1" (count), "2" (_port_) : - "memory", "cc"); + "+D" (addr), "+c" (count), "+S" (_port_) : : + "memory"); #endif } #endif @@ -621,9 +615,9 @@ 1: lodsb \n\ movb %%al,(%2) \n\ loop 1b" : - "=S" (addr), "=c" (count) : - "r" (bsh + offset), "0" (addr), "1" (count) : - "%eax", "memory", "cc"); + "+S" (addr), "+c" (count) : + "r" (bsh + offset) : + "%eax", "memory"); #endif } #endif @@ -650,9 +644,9 @@ 1: lodsw \n\ movw %%ax,(%2) \n\ loop 1b" : - "=S" (addr), "=c" (count) : - "r" (bsh + offset), "0" (addr), "1" (count) : - "%eax", "memory", "cc"); + "+S" (addr), "+c" (count) : + "r" (bsh + offset) : + "%eax", "memory"); #endif } #endif @@ -679,9 +673,9 @@ 1: lodsl \n\ movl %%eax,(%2) \n\ loop 1b" : - "=S" (addr), "=c" (count) : - "r" (bsh + offset), "0" (addr), "1" (count) : - "%eax", "memory", "cc"); + "+S" (addr), "+c" (count) : + "r" (bsh + offset) : + "%eax", "memory"); #endif } #endif @@ -730,9 +724,8 @@ outb %%al,%w0 \n\ incl %0 \n\ loop 1b" : - "=d" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "%eax", "memory", "cc"); + "+d" (_port_), "+S" (addr), "+c" (count) : : + "%eax", "memory"); #endif } #endif @@ -747,9 +740,8 @@ cld \n\ repne \n\ movsb" : - "=D" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "memory", "cc"); + "+D" (_port_), "+S" (addr), "+c" (count) : : + "memory"); #endif } #endif @@ -772,9 +764,8 @@ outw %%ax,%w0 \n\ addl $2,%0 \n\ loop 1b" : - "=d" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "%eax", "memory", "cc"); + "+d" (_port_), "+S" (addr), "+c" (count) : : + "%eax", "memory"); #endif } #endif @@ -789,9 +780,8 @@ cld \n\ repne \n\ movsw" : - "=D" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "memory", "cc"); + "+D" (_port_), "+S" (addr), "+c" (count) : : + "memory"); #endif } #endif @@ -814,9 +804,8 @@ outl %%eax,%w0 \n\ addl $4,%0 \n\ loop 1b" : - "=d" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "%eax", "memory", "cc"); + "+d" (_port_), "+S" (addr), "+c" (count) : : + "%eax", "memory"); #endif } #endif @@ -831,9 +820,8 @@ cld \n\ repne \n\ movsl" : - "=D" (_port_), "=S" (addr), "=c" (count) : - "0" (_port_), "1" (addr), "2" (count) : - "memory", "cc"); + "+D" (_port_), "+S" (addr), "+c" (count) : : + "memory"); #endif } #endif ==== //depot/projects/smpng/sys/i386/include/bus_pc98.h#6 (text+ko) ==== @@ -256,11 +256,10 @@ \ __asm __volatile("call *%2" \ :"=a" (result), \ - "=d" (offset) \ + "+d" (offset) \ :"o" (bsh->bsh_bam.bs_read_##BWN), \ - "b" (bsh), \ - "1" (offset) \ - ); \ + "b" (bsh) \ + :"ecx","memory"); \ \ return result; \ } @@ -282,12 +281,11 @@ { \ \ __asm __volatile("call *%1" \ - :"=d" (offset) \ + :"+d" (offset) \ :"o" (bsh->bsh_bam.bs_write_##BWN), \ "a" (val), \ - "b" (bsh), \ - "0" (offset) \ - ); \ + "b" (bsh) \ + :"ecx","memory"); \ } _BUS_SPACE_WRITE(u_int8_t,1) @@ -308,15 +306,12 @@ { \ \ __asm __volatile("call *%3" \ - :"=c" (cnt), \ - "=d" (offset), \ - "=D" (buf) \ + :"+c" (cnt), \ + "+d" (offset), \ + "+D" (buf) \ :"o" (bsh->bsh_bam.bs_read_multi_##BWN), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset), \ - "2" (buf) \ - :"memory"); \ + "b" (bsh) \ + :"eax","memory"); \ } _BUS_SPACE_READ_MULTI(u_int8_t,1) @@ -337,15 +332,12 @@ { \ \ __asm __volatile("call *%3" \ - :"=c" (cnt), \ - "=d" (offset), \ - "=S" (buf) \ + :"+c" (cnt), \ + "+d" (offset), \ + "+S" (buf) \ :"o" (bsh->bsh_bam.bs_write_multi_##BWN), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset), \ - "2" (buf) \ - ); \ + "b" (bsh) \ + :"eax","memory"); \ } _BUS_SPACE_WRITE_MULTI(u_int8_t,1) @@ -361,20 +353,17 @@ bus_space_tag_t tag; \ bus_space_handle_t bsh; \ bus_size_t offset; \ - TYPE *buf; \ + TYPE *buf; \ size_t cnt; \ { \ \ __asm __volatile("call *%3" \ - :"=c" (cnt), \ - "=d" (offset), \ - "=D" (buf) \ + :"+c" (cnt), \ + "+d" (offset), \ + "+D" (buf) \ :"o" (bsh->bsh_bam.bs_read_region_##BWN), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset), \ - "2" (buf) \ - :"memory"); \ + "b" (bsh) \ + :"eax","memory"); \ } _BUS_SPACE_READ_REGION(u_int8_t,1) @@ -395,15 +384,12 @@ { \ \ __asm __volatile("call *%3" \ - :"=c" (cnt), \ - "=d" (offset), \ - "=S" (buf) \ + :"+c" (cnt), \ + "+d" (offset), \ + "+S" (buf) \ :"o" (bsh->bsh_bam.bs_write_region_##BWN), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset), \ - "2" (buf) \ - ); \ + "b" (bsh) \ + :"eax","memory"); \ } _BUS_SPACE_WRITE_REGION(u_int8_t,1) @@ -424,14 +410,12 @@ { \ \ __asm __volatile("call *%2" \ - :"=c" (cnt), \ - "=d" (offset) \ + :"+c" (cnt), \ + "+d" (offset) \ :"o" (bsh->bsh_bam.bs_set_multi_##BWN), \ "a" (val), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset) \ - ); \ + "b" (bsh) \ + :"memory"); \ } _BUS_SPACE_SET_MULTI(u_int8_t,1) @@ -452,14 +436,12 @@ { \ \ __asm __volatile("call *%2" \ - :"=c" (cnt), \ - "=d" (offset) \ + :"+c" (cnt), \ + "+d" (offset) \ :"o" (bsh->bsh_bam.bs_set_region_##BWN), \ "a" (val), \ - "b" (bsh), \ - "0" (cnt), \ - "1" (offset) \ - ); \ + "b" (bsh) \ + :"memory"); \ } _BUS_SPACE_SET_REGION(u_int8_t,1) @@ -484,16 +466,13 @@ panic("bus_space_copy_region: funcs mismatch (ENOSUPPORT)");\ \ __asm __volatile("call *%3" \ - :"=c" (cnt), \ - "=S" (src), \ - "=D" (dst) \ + :"+c" (cnt), \ + "+S" (src), \ + "+D" (dst) \ :"o" (dbsh->bsh_bam.bs_copy_region_##BWN), \ "a" (sbsh), \ - "b" (dbsh), \ - "0" (cnt), \ - "1" (src), \ - "2" (dst) \ - ); \ + "b" (dbsh) \ + :"edx","memory"); \ } _BUS_SPACE_COPY_REGION(1) ==== //depot/projects/smpng/sys/i386/include/cpufunc.h#20 (text+ko) ==== @@ -91,9 +91,12 @@ static __inline void do_cpuid(u_int ax, u_int *p) { - __asm __volatile("cpuid" - : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) - : "0" (ax)); + + p[0] = ax; + __asm __volatile( + "cpuid" + : "+a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) + ); } static __inline void ==== //depot/projects/smpng/sys/i386/isa/bs/bsif.h#3 (text+ko) ==== @@ -221,8 +221,7 @@ cld \n\ rep \n\ movsl" : - "=D" (to), "=c" (len), "=S" (from) : - "0" (to), "1" (len), "2" (from) : - "memory", "cc"); + "+D" (to), "+c" (len), "+S" (from) : : + "memory"); } #endif /* __FreeBSD__ */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message