We now following the ABI and always clear cld on function entry, so remove
authorguenther <guenther@openbsd.org>
Sat, 25 Apr 2015 21:31:24 +0000 (21:31 +0000)
committerguenther <guenther@openbsd.org>
Sat, 25 Apr 2015 21:31:24 +0000 (21:31 +0000)
the extra CLD instructions from when that wasn't true

testing miod@ krw@

sys/arch/amd64/amd64/bus_space.c
sys/arch/amd64/amd64/copy.S
sys/arch/amd64/include/pio.h
sys/arch/i386/i386/bus_space.c
sys/arch/i386/i386/kvm86call.S
sys/arch/i386/i386/locore.s
sys/arch/i386/i386/vector.s
sys/arch/i386/include/pio.h

index 5cf9a74..87813aa 100644 (file)
@@ -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) :
index c638e2d..ba71b7f 100644 (file)
@@ -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
index 928564c..8715a18 100644 (file)
@@ -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));
 }
index 4b1c924..10dee17 100644 (file)
@@ -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) :
index 444a72f..f4c20ae 100644 (file)
@@ -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 */
 
index bb8a1d3..1e8b4d1 100644 (file)
@@ -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
 
index f865b21..8f3aadf 100644 (file)
@@ -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 $      */
 
 /*
  * 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)
index 284c7d7..f70d503 100644 (file)
@@ -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");
 }