From e39f036fc2ff0785d0b742d3bf3fea5b36d3eb45 Mon Sep 17 00:00:00 2001 From: guenther Date: Sat, 25 Apr 2015 21:31:24 +0000 Subject: [PATCH] We now following the ABI and always clear cld on function entry, so remove the extra CLD instructions from when that wasn't true testing miod@ krw@ --- sys/arch/amd64/amd64/bus_space.c | 46 ++++++++++++++++---------------- sys/arch/amd64/amd64/copy.S | 10 ++----- sys/arch/amd64/include/pio.h | 14 +++++----- sys/arch/i386/i386/bus_space.c | 44 +++++++++++++++--------------- sys/arch/i386/i386/kvm86call.S | 4 +-- sys/arch/i386/i386/locore.s | 14 ++-------- sys/arch/i386/i386/vector.s | 6 +---- sys/arch/i386/include/pio.h | 14 +++++----- 8 files changed, 65 insertions(+), 87 deletions(-) diff --git a/sys/arch/amd64/amd64/bus_space.c b/sys/arch/amd64/amd64/bus_space.c index 5cf9a745314..87813aab39d 100644 --- a/sys/arch/amd64/amd64/bus_space.c +++ b/sys/arch/amd64/amd64/bus_space.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bus_space.c,v 1.25 2014/11/16 12:30:56 deraadt Exp $ */ +/* $OpenBSD: bus_space.c,v 1.26 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: bus_space.c,v 1.2 2003/03/14 18:47:53 christos Exp $ */ /*- @@ -694,7 +694,7 @@ x86_bus_space_io_read_region_1(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile(" cld ;" + __asm volatile( "1: inb %w1,%%al ;" " stosb ;" " incl %1 ;" @@ -714,7 +714,7 @@ x86_bus_space_io_read_region_2(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile(" cld ;" + __asm volatile( "1: inw %w1,%%ax ;" " stosw ;" " addl $2,%1 ;" @@ -734,7 +734,7 @@ x86_bus_space_io_read_region_4(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: inl %w1,%%eax ;" " stosl ;" " addl $4,%1 ;" @@ -813,7 +813,7 @@ x86_bus_space_io_write_region_1(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: lodsb ;" " outb %%al,%w1 ;" " incl %1 ;" @@ -833,7 +833,7 @@ x86_bus_space_io_write_region_2(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: lodsw ;" " outw %%ax,%w1 ;" " addl $2,%1 ;" @@ -853,7 +853,7 @@ x86_bus_space_io_write_region_4(bus_space_handle_t h, int dummy3; int __x; u_int32_t port = h + o; - __asm volatile(" cld ;" + __asm volatile( "1: lodsl ;" " outl %%eax,%w1 ;" " addl $4,%1 ;" @@ -1066,7 +1066,7 @@ x86_bus_space_mem_read_multi_1(bus_space_handle_t h, bus_size_t o, int dummy2; void *dummy3; int __x; - __asm volatile(" cld ;" + __asm volatile( "1: movb (%2),%%al ;" " stosb ;" " loop 1b" : @@ -1083,7 +1083,7 @@ x86_bus_space_mem_read_multi_2(bus_space_handle_t h, bus_size_t o, int dummy2; void *dummy3; int __x; - __asm volatile(" cld ;" + __asm volatile( "1: movw (%2),%%ax ;" " stosw ;" " loop 1b" : @@ -1100,7 +1100,7 @@ x86_bus_space_mem_read_multi_4(bus_space_handle_t h, bus_size_t o, int dummy2; void *dummy3; int __x; - __asm volatile(" cld ;" + __asm volatile( "1: movl (%2),%%eax ;" " stosl ;" " loop 1b" : @@ -1117,7 +1117,7 @@ x86_bus_space_mem_read_multi_8(bus_space_handle_t h, bus_size_t o, int dummy2; void *dummy3; int __x; - __asm volatile(" cld ;" + __asm volatile( "1: movq (%2),%%rax ;" " stosq ;" " loop 1b" : @@ -1133,7 +1133,7 @@ x86_bus_space_mem_read_region_1(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile(" cld ;" + __asm volatile( " repne ;" " movsb" : "=S" (dummy1), "=D" (dummy2), "=c" (dummy3) : @@ -1148,7 +1148,7 @@ x86_bus_space_mem_read_region_2(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile(" cld ;" + __asm volatile( " repne ;" " movsw" : "=S" (dummy1), "=D" (dummy2), "=c" (dummy3) : @@ -1163,7 +1163,7 @@ x86_bus_space_mem_read_region_4(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsl" : "=S" (dummy1), "=D" (dummy2), "=c" (dummy3) : @@ -1178,7 +1178,7 @@ x86_bus_space_mem_read_region_8(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsq" : "=S" (dummy1), "=D" (dummy2), "=c" (dummy3) : @@ -1206,7 +1206,7 @@ x86_bus_space_mem_write_multi_1(bus_space_handle_t h, int dummy2; void *dummy3; int __x; - __asm volatile("cld ;" + __asm volatile( "1: lodsb ;" " movb %%al,(%2) ;" " loop 1b" : @@ -1222,7 +1222,7 @@ x86_bus_space_mem_write_multi_2(bus_space_handle_t h, int dummy2; void *dummy3; int __x; - __asm volatile("cld ;" + __asm volatile( "1: lodsw ;" " movw %%ax,(%2) ;" " loop 1b" : @@ -1238,7 +1238,7 @@ x86_bus_space_mem_write_multi_4(bus_space_handle_t h, int dummy2; void *dummy3; int __x; - __asm volatile("cld ;" + __asm volatile( "1: lodsl ;" " movl %%eax,(%2) ;" " loop 1b" : @@ -1254,7 +1254,7 @@ x86_bus_space_mem_write_multi_8(bus_space_handle_t h, int dummy2; void *dummy3; int __x; - __asm volatile("cld ;" + __asm volatile( "1: lodsq ;" " movq %%rax,(%2) ;" " loop 1b" : @@ -1269,7 +1269,7 @@ x86_bus_space_mem_write_region_1(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsb" : "=D" (dummy1), "=S" (dummy2), "=c" (dummy3) : @@ -1284,7 +1284,7 @@ x86_bus_space_mem_write_region_2(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsw" : "=D" (dummy1), "=S" (dummy2), "=c" (dummy3) : @@ -1299,7 +1299,7 @@ x86_bus_space_mem_write_region_4(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsl" : "=D" (dummy1), "=S" (dummy2), "=c" (dummy3) : @@ -1314,7 +1314,7 @@ x86_bus_space_mem_write_region_8(bus_space_handle_t h, int dummy1; void *dummy2; int dummy3; - __asm volatile("cld ;" + __asm volatile( " repne ;" " movsq" : "=D" (dummy1), "=S" (dummy2), "=c" (dummy3) : diff --git a/sys/arch/amd64/amd64/copy.S b/sys/arch/amd64/amd64/copy.S index c638e2d1683..ba71b7fa2be 100644 --- a/sys/arch/amd64/amd64/copy.S +++ b/sys/arch/amd64/amd64/copy.S @@ -1,4 +1,4 @@ -/* $OpenBSD: copy.S,v 1.6 2015/01/16 10:17:51 sf Exp $ */ +/* $OpenBSD: copy.S,v 1.7 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: copy.S,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */ /* @@ -81,8 +81,7 @@ ENTRY(kcopy) subq %rsi,%rax cmpq %rcx,%rax # overlapping? jb 1f - cld # nope, copy forward - shrq $3,%rcx # copy by 64-bit words + shrq $3,%rcx # nope, copy forward by 64-bit words rep movsq @@ -134,7 +133,6 @@ ENTRY(copyout) leaq _C_LABEL(copy_fault)(%rip),%r11 movq %r11,PCB_ONFAULT(%rdx) SMAP_STAC - cld movq %rax,%rcx shrq $3,%rcx rep @@ -165,7 +163,6 @@ ENTRY(copyin) ja _C_LABEL(copy_efault) 3: /* bcopy(%rsi, %rdi, %rax); */ - cld movq %rax,%rcx shrq $3,%rcx rep @@ -211,7 +208,6 @@ ENTRY(copyoutstr) movq %rax,%r8 1: incq %rdx - cld 1: decq %rdx jz 2f @@ -254,7 +250,6 @@ ENTRY(copyinstr) movq %rax,%r8 1: incq %rdx - cld 1: decq %rdx jz 2f @@ -296,7 +291,6 @@ ENTRY(copystr) movq %rdx,%r8 incq %rdx - cld 1: decq %rdx jz 4f diff --git a/sys/arch/amd64/include/pio.h b/sys/arch/amd64/include/pio.h index 928564c73d8..8715a186b19 100644 --- a/sys/arch/amd64/include/pio.h +++ b/sys/arch/amd64/include/pio.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pio.h,v 1.4 2014/03/29 18:09:28 guenther Exp $ */ +/* $OpenBSD: pio.h,v 1.5 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: pio.h,v 1.2 2003/02/27 11:22:46 fvdl Exp $ */ /*- @@ -78,7 +78,7 @@ insb(unsigned port, void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\tinsb" : + __asm volatile("repne\n\tinsb" : "=D" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt) : "memory"); @@ -108,7 +108,7 @@ insw(unsigned port, void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\tinsw" : + __asm volatile("repne\n\tinsw" : "=D" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt) : "memory"); @@ -138,7 +138,7 @@ insl(unsigned port, void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\tinsl" : + __asm volatile("repne\n\tinsl" : "=D" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt) : "memory"); @@ -165,7 +165,7 @@ outsb(unsigned port, const void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\toutsb" : + __asm volatile("repne\n\toutsb" : "=S" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt)); } @@ -191,7 +191,7 @@ outsw(unsigned port, const void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\toutsw" : + __asm volatile("repne\n\toutsw" : "=S" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt)); } @@ -217,7 +217,7 @@ outsl(unsigned port, const void *addr, int cnt) { void *dummy1; int dummy2; - __asm volatile("cld\n\trepne\n\toutsl" : + __asm volatile("repne\n\toutsl" : "=S" (dummy1), "=c" (dummy2) : "d" (port), "0" (addr), "1" (cnt)); } diff --git a/sys/arch/i386/i386/bus_space.c b/sys/arch/i386/i386/bus_space.c index 4b1c9246962..10dee17eb3f 100644 --- a/sys/arch/i386/i386/bus_space.c +++ b/sys/arch/i386/i386/bus_space.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bus_space.c,v 1.8 2014/10/17 20:37:57 sthen Exp $ */ +/* $OpenBSD: bus_space.c,v 1.9 2015/04/25 21:31:24 guenther Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. * All rights reserved. @@ -303,7 +303,7 @@ i386_bus_space_io_read_region_1(bus_space_handle_t h, void *_addr = a; int _port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: inb %w2,%%al ;" " stosb ;" " incl %2 ;" @@ -320,7 +320,7 @@ i386_bus_space_io_read_region_2(bus_space_handle_t h, void *_addr = a; int _port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: inw %w2,%%ax ;" " stosw ;" " addl $2,%2 ;" @@ -337,7 +337,7 @@ i386_bus_space_io_read_region_4(bus_space_handle_t h, void *_addr = a; int _port = h + o; - __asm volatile("cld ;" + __asm volatile( "1: inl %w2,%%eax ;" " stosl ;" " addl $4,%2 ;" @@ -393,7 +393,7 @@ i386_bus_space_io_write_region_1(bus_space_handle_t h, const void *_addr = a; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsb ;" " outb %%al,%w0 ;" " incl %0 ;" @@ -410,7 +410,7 @@ i386_bus_space_io_write_region_2(bus_space_handle_t h, const void *_addr = a; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsw ;" " outw %%ax,%w0 ;" " addl $2,%0 ;" @@ -427,7 +427,7 @@ i386_bus_space_io_write_region_4(bus_space_handle_t h, const void *_addr = a; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsl ;" " outl %%eax,%w0 ;" " addl $4,%0 ;" @@ -442,7 +442,7 @@ i386_bus_space_io_set_multi_1(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: outb %b2, %w1 ;" " loop 1b" : "+c" (_cnt) : "d" (h + o), "a" (v) : @@ -455,7 +455,7 @@ i386_bus_space_io_set_multi_2(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: outw %w2, %w1 ;" " loop 1b" : "+c" (_cnt) : "d" (h + o), "a" (v) : @@ -468,7 +468,7 @@ i386_bus_space_io_set_multi_4(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: outl %2,%w1 ;" " loop 1b" : "+c" (_cnt) : "d" (h + o), "a" (v) : @@ -617,7 +617,7 @@ i386_bus_space_mem_read_multi_1(bus_space_handle_t h, bus_size_t o, { void *_addr=a; int _cnt=cnt; - __asm volatile("cld ;" + __asm volatile( "1: movb (%2),%%al ;" " stosb ;" " loop 1b" : @@ -631,7 +631,7 @@ i386_bus_space_mem_read_multi_2(bus_space_handle_t h, bus_size_t o, { void *_addr=a; int _cnt=cnt; - __asm volatile("cld ;" + __asm volatile( "1: movw (%2),%%ax ;" " stosw ;" " loop 1b" : @@ -645,7 +645,7 @@ i386_bus_space_mem_read_multi_4(bus_space_handle_t h, bus_size_t o, { void *_addr=a; int _cnt=cnt; - __asm volatile("cld ;" + __asm volatile( "1: movl (%2),%%eax ;" " stosl ;" " loop 1b" : @@ -711,7 +711,7 @@ i386_bus_space_mem_write_multi_1(bus_space_handle_t h, const void *_addr=a; int _cnt=cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsb ;" " movb %%al,(%2) ;" " loop 1b" : @@ -726,7 +726,7 @@ i386_bus_space_mem_write_multi_2(bus_space_handle_t h, const void *_addr = a; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsw ;" " movw %%ax,(%2) ;" " loop 1b" : @@ -741,7 +741,7 @@ i386_bus_space_mem_write_multi_4(bus_space_handle_t h, const void *_addr=a; int _cnt=cnt; - __asm volatile("cld ;" + __asm volatile( "1: lodsl ;" " movl %%eax,(%2) ;" " loop 1b" : @@ -788,7 +788,7 @@ i386_bus_space_mem_set_multi_1(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: movb %b2, (%1) ;" " loop 1b" : "+c" (_cnt) : "D" (h + o), "a" (v) : @@ -801,7 +801,7 @@ i386_bus_space_mem_set_multi_2(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: movw %w2, (%1) ;" " loop 1b" : "+c" (_cnt) : "D" (h + o), "a" (v) : @@ -814,7 +814,7 @@ i386_bus_space_mem_set_multi_4(bus_space_handle_t h, { int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( "1: movl %2,(%1) ;" " loop 1b" : "+c" (_cnt) : "D" (h + o), "a" (v) : @@ -828,7 +828,7 @@ i386_bus_space_mem_set_region_1(bus_space_handle_t h, int _port = h + o; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( " repne ;" " stosb" : "+D" (_port), "+c" (_cnt) : "a" (v) : @@ -842,7 +842,7 @@ i386_bus_space_mem_set_region_2(bus_space_handle_t h, int _port = h + o; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( " repne ;" " stosw" : "+D" (_port), "+c" (_cnt) : "a" (v) : @@ -856,7 +856,7 @@ i386_bus_space_mem_set_region_4(bus_space_handle_t h, int _port = h + o; int _cnt = cnt; - __asm volatile("cld ;" + __asm volatile( " repne ;" " stosl" : "+D" (_port), "+c" (_cnt) : "a" (v) : diff --git a/sys/arch/i386/i386/kvm86call.S b/sys/arch/i386/i386/kvm86call.S index 444a72fdfb2..f4c20ae423b 100644 --- a/sys/arch/i386/i386/kvm86call.S +++ b/sys/arch/i386/i386/kvm86call.S @@ -1,4 +1,4 @@ -/* $OpenBSD: kvm86call.S,v 1.6 2010/04/05 22:42:43 kettenis Exp $ */ +/* $OpenBSD: kvm86call.S,v 1.7 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: kvm86call.S,v 1.7 2006/04/11 17:14:07 drochner Exp $ */ /*- @@ -74,7 +74,6 @@ ENTRY(kvm86_call) movl vm86frame,%edi /* target frame location */ movl SCRARGFRAME,%esi /* source (set on entry) */ movl $FRAMESIZE/4,%ecx /* sizeof(struct trapframe)/4 */ - cld rep movsl /* copy frame to new stack */ @@ -163,7 +162,6 @@ ENTRY(kvm86_ret) movl 8(%ebp),%esi /* source */ movl SCRARGFRAME,%edi /* destination */ movl $FRAMESIZE/4,%ecx /* size */ - cld rep movsl /* copy frame to original frame */ diff --git a/sys/arch/i386/i386/locore.s b/sys/arch/i386/i386/locore.s index bb8a1d3857d..1e8b4d159a6 100644 --- a/sys/arch/i386/i386/locore.s +++ b/sys/arch/i386/i386/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.155 2015/04/24 12:52:38 kettenis Exp $ */ +/* $OpenBSD: locore.s,v 1.156 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: locore.s,v 1.145 1996/05/03 19:41:19 christos Exp $ */ /*- @@ -544,7 +544,6 @@ try586: /* Use the `cpuid' instruction. */ subl %edi,%ecx # size of tables shrl $2,%ecx xorl %eax, %eax - cld rep stosl @@ -764,8 +763,7 @@ ENTRY(kcopy) subl %esi,%eax cmpl %ecx,%eax # overlapping? jb 1f - cld # nope, copy forward - shrl $2,%ecx # copy by 32-bit words + shrl $2,%ecx # nope, copy forward by 32-bit words rep movsl movl 24+FPADD(%esp),%ecx @@ -852,7 +850,6 @@ ENTRY(copyout) SMAP_STAC /* bcopy(%esi, %edi, %eax); */ - cld movl %eax,%ecx shrl $2,%ecx rep @@ -904,7 +901,6 @@ ENTRY(copyin) ja _C_LABEL(copy_fault) /* bcopy(%esi, %edi, %eax); */ - cld movl %eax,%ecx shrl $2,%ecx rep @@ -974,7 +970,6 @@ ENTRY(copyoutstr) movl %eax,20+FPADD(%esp) 1: incl %edx - cld 1: decl %edx jz 2f @@ -1030,7 +1025,6 @@ ENTRY(copyinstr) movl %eax,20+FPADD(%esp) 1: incl %edx - cld 1: decl %edx jz 2f @@ -1090,7 +1084,6 @@ ENTRY(copystr) movl 16+FPADD(%esp),%edi # edi = to movl 20+FPADD(%esp),%edx # edx = maxlen incl %edx - cld 1: decl %edx jz 4f @@ -1538,7 +1531,6 @@ ENTRY(bzero) movl 8(%esp),%edi movl 12(%esp),%edx - cld /* set fill direction forward */ xorl %eax,%eax /* set fill data to 0 */ /* @@ -1618,7 +1610,6 @@ ENTRY(i686_pagezero) movl 12(%esp), %edi movl $1024, %ecx - cld ALIGN_TEXT 1: @@ -1679,7 +1670,6 @@ ENTRY(cpu_paenable) movl %edi, %cr3 addl $KERNBASE, %edi /* and make it back virtual again */ movl $8, %ecx - cld rep movsl diff --git a/sys/arch/i386/i386/vector.s b/sys/arch/i386/i386/vector.s index f865b217fa0..8f3aadff113 100644 --- a/sys/arch/i386/i386/vector.s +++ b/sys/arch/i386/i386/vector.s @@ -1,4 +1,4 @@ -/* $OpenBSD: vector.s,v 1.18 2013/11/28 19:30:46 brad Exp $ */ +/* $OpenBSD: vector.s,v 1.19 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: vector.s,v 1.32 1996/01/07 21:29:47 mycroft Exp $ */ /* @@ -49,10 +49,6 @@ * If the interrupt frame is made more flexible, INTR can push %eax first and * decide the ipending case with less overhead, e.g., by avoiding loading the * segment registers. - * - * XXX - * Should we do a cld on every system entry to avoid the requirement for - * scattered cld's? */ .globl _C_LABEL(isa_strayintr) diff --git a/sys/arch/i386/include/pio.h b/sys/arch/i386/include/pio.h index 284c7d702f9..f70d503f396 100644 --- a/sys/arch/i386/include/pio.h +++ b/sys/arch/i386/include/pio.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pio.h,v 1.11 2014/03/29 18:09:29 guenther Exp $ */ +/* $OpenBSD: pio.h,v 1.12 2015/04/25 21:31:24 guenther Exp $ */ /* $NetBSD: pio.h,v 1.13 1996/03/08 20:15:23 cgd Exp $ */ /* @@ -76,7 +76,7 @@ __inb(int port) static __inline void insb(int port, void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\tinsb" + __asm volatile("repne\n\tinsb" : "+D" (addr), "+c" (cnt) : "d" (port) : "memory", "cc"); } @@ -102,7 +102,7 @@ __inw(int port) static __inline void insw(int port, void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\tinsw" + __asm volatile("repne\n\tinsw" : "+D" (addr), "+c" (cnt) : "d" (port) : "memory", "cc"); } @@ -128,7 +128,7 @@ __inl(int port) static __inline void insl(int port, void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\tinsl" + __asm volatile("repne\n\tinsl" : "+D" (addr), "+c" (cnt) : "d" (port) : "memory", "cc"); } @@ -150,7 +150,7 @@ __outb(int port, u_int8_t data) static __inline void outsb(int port, const void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\toutsb" + __asm volatile("repne\n\toutsb" : "+S" (addr), "+c" (cnt) : "d" (port) : "cc"); } @@ -172,7 +172,7 @@ __outw(int port, u_int16_t data) static __inline void outsw(int port, const void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\toutsw" + __asm volatile("repne\n\toutsw" : "+S" (addr), "+c" (cnt) : "d" (port) : "cc"); } @@ -194,7 +194,7 @@ __outl(int port, u_int32_t data) static __inline void outsl(int port, const void *addr, int cnt) { - __asm volatile("cld\n\trepne\n\toutsl" + __asm volatile("repne\n\toutsl" : "+S" (addr), "+c" (cnt) : "d" (port) : "cc"); } -- 2.20.1