summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1999-01-09 13:00:27 +0000
committerbde <bde@FreeBSD.org>1999-01-09 13:00:27 +0000
commitcea612c7820bfb144a3e6e478758d7163d4a293b (patch)
treefddc11633fff3da928c7292122d041ca7b34888f /sys/i386
parentfe2dbd0b73096e28814ce99610ac558f36ae40fa (diff)
downloadFreeBSD-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')
-rw-r--r--sys/i386/include/cpufunc.h29
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
OpenPOWER on IntegriCloud