summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2015-04-25 21:31:25 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2015-04-25 21:31:25 +0000
commit99f2c1afbd977dfb2f1ee7c57932c6430dae32d2 (patch)
tree7fb7d638a1c9473d9fde762b1b86b4926219aeba /sys/arch
parent3359f9df87afe1ba911626314803d08996db40a6 (diff)
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@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/amd64/amd64/bus_space.c46
-rw-r--r--sys/arch/amd64/amd64/copy.S10
-rw-r--r--sys/arch/amd64/include/pio.h14
-rw-r--r--sys/arch/i386/i386/bus_space.c44
-rw-r--r--sys/arch/i386/i386/kvm86call.S4
-rw-r--r--sys/arch/i386/i386/locore.s14
-rw-r--r--sys/arch/i386/i386/vector.s6
-rw-r--r--sys/arch/i386/include/pio.h14
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");
}