diff options
author | bde <bde@FreeBSD.org> | 1999-01-09 13:00:27 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1999-01-09 13:00:27 +0000 |
commit | cea612c7820bfb144a3e6e478758d7163d4a293b (patch) | |
tree | fddc11633fff3da928c7292122d041ca7b34888f /sys/i386/include/cpufunc.h | |
parent | fe2dbd0b73096e28814ce99610ac558f36ae40fa (diff) | |
download | FreeBSD-src-cea612c7820bfb144a3e6e478758d7163d4a293b.zip FreeBSD-src-cea612c7820bfb144a3e6e478758d7163d4a293b.tar.gz |
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" <dyson@iquest.net> but rewritten by me
Diffstat (limited to 'sys/i386/include/cpufunc.h')
-rw-r--r-- | sys/i386/include/cpufunc.h | 29 |
1 files changed, 16 insertions, 13 deletions
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 |