diff options
-rw-r--r-- | sys/arch/i386/include/bus.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/arch/i386/include/bus.h b/sys/arch/i386/include/bus.h index 9a9bbb59afc..f88ba9632db 100644 --- a/sys/arch/i386/include/bus.h +++ b/sys/arch/i386/include/bus.h @@ -1,4 +1,4 @@ -/* $OpenBSD: bus.h,v 1.25 2001/02/04 06:51:14 aaron Exp $ */ +/* $OpenBSD: bus.h,v 1.26 2001/02/06 23:01:32 mickey Exp $ */ /* $NetBSD: bus.h,v 1.6 1996/11/10 03:19:25 thorpej Exp $ */ /*- @@ -723,9 +723,8 @@ void bus_space_free __P((bus_space_tag_t t, bus_space_handle_t bsh, "+S" (a1), "+D" (a2), "+c" (cnt) :: "memory", "cc"); #define i386_space_copy(a1, a2, sz, cnt) do { \ - int _len = (sz) * (cnt); \ - if ((void *)(a2) < ((void *)(a1) + _len)) { \ - a1 += (_len - (sz)); a2 += (_len - (sz)); \ + if ((void *)(a1) < (void *)(a2) { \ + a1 += ((cnt) - 1) * (sz); a2 += ((cnt) - 1) * (sz); \ switch (sz) { \ case 1: i386_space_copy1(a1,a2,cnt,"movsb","std");break;\ case 2: i386_space_copy1(a1,a2,cnt,"movsw","std");break;\ |