summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-12-20 21:14:08 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-12-20 21:14:08 +0000
commit590d1ec17a6c61753753e42a5b4275df72356eed (patch)
tree8e20db376b25dc1a728b67d8678ffa11566df51f /sys/arch
parentb38ee845cc1d5065612de28ef164ba7c635893b7 (diff)
Do not wait for the end of the universe if delay(0).
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/aviion/aviion/locore.S9
-rw-r--r--sys/arch/luna88k/luna88k/locore.S9
-rw-r--r--sys/arch/mvme88k/mvme88k/locore.S9
3 files changed, 15 insertions, 12 deletions
diff --git a/sys/arch/aviion/aviion/locore.S b/sys/arch/aviion/aviion/locore.S
index e347733fda5..560d2c43758 100644
--- a/sys/arch/aviion/aviion/locore.S
+++ b/sys/arch/aviion/aviion/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.9 2007/12/05 22:12:32 miod Exp $ */
+/* $OpenBSD: locore.S,v 1.10 2007/12/20 21:14:06 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -347,8 +347,9 @@ GLOBAL(secondary_start)
* (originally from Mach 2.5)
*/
GLOBAL(delay)
- or.u r3, r0, hi16(_cpuspeed)
- ld r3, r3, lo16(_cpuspeed)
+ bcnd eq0, r2, 2f
+ or.u r3, r0, hi16(_C_LABEL(aviion_delay_const))
+ ld r3, r3, lo16(_C_LABEL(aviion_delay_const))
mul r4, r2, r3
subu r4, r4, 4 /* overhead of these instructions */
@@ -356,7 +357,7 @@ GLOBAL(delay)
1:
bcnd.n gt0, r4, 1b
subu r4, r4, 2 /* two cycles per iteration */
-
+2:
jmp r1
/*****************************************************************************/
diff --git a/sys/arch/luna88k/luna88k/locore.S b/sys/arch/luna88k/luna88k/locore.S
index d89b91cb50c..f09b18f2834 100644
--- a/sys/arch/luna88k/luna88k/locore.S
+++ b/sys/arch/luna88k/luna88k/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.18 2007/12/04 23:43:54 miod Exp $ */
+/* $OpenBSD: locore.S,v 1.19 2007/12/20 21:14:07 miod Exp $ */
/*
* Copyright (c) 1998 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -306,8 +306,9 @@ ASLOCAL(secondary_init)
*/
GLOBAL(delay)
- or.u r3, r0, hi16(_cpuspeed)
- ld r3, r3, lo16(_cpuspeed)
+ bcnd eq0, r2, 2f
+ or.u r3, r0, hi16(_C_LABEL(cpuseed))
+ ld r3, r3, lo16(_C_LABEL(cpuseed))
mul r4, r2, r3
subu r4, r4, 4 /* overhead of these instructions */
@@ -315,7 +316,7 @@ GLOBAL(delay)
1:
bcnd.n gt0, r4, 1b
subu r4, r4, 2 /* two cycles per iteration */
-
+2:
jmp r1
/*****************************************************************************/
diff --git a/sys/arch/mvme88k/mvme88k/locore.S b/sys/arch/mvme88k/mvme88k/locore.S
index a8b44ff1bbb..6590cebec1c 100644
--- a/sys/arch/mvme88k/mvme88k/locore.S
+++ b/sys/arch/mvme88k/mvme88k/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.59 2007/12/09 19:57:51 miod Exp $ */
+/* $OpenBSD: locore.S,v 1.60 2007/12/20 21:14:07 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -359,8 +359,9 @@ GLOBAL(doboot)
* (originally from Mach 2.5)
*/
GLOBAL(m188_delay)
- or.u r3, r0, hi16(_cpuspeed)
- ld r3, r3, lo16(_cpuspeed)
+ bcnd eq0, r2, 2f
+ or.u r3, r0, hi16(_C_LABEL(m188_delay_const))
+ ld r3, r3, lo16(_C_LABEL(m188_delay_const))
mul r4, r2, r3
subu r4, r4, 4 /* overhead of these instructions */
@@ -368,7 +369,7 @@ GLOBAL(m188_delay)
1:
bcnd.n gt0, r4, 1b
subu r4, r4, 2 /* two cycles per iteration */
-
+2:
jmp r1
#endif