summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortholo <tholo@openbsd.org>1996-05-06 20:29:38 +0000
committertholo <tholo@openbsd.org>1996-05-06 20:29:38 +0000
commit6e04bc6b518516bfbb9fdcfe4aa19f8deaf3a176 (patch)
tree5fcdd629ce6a6620f0b191292e50c77f85f8226a
parentuse mounted table instead of fstab for -a; netbsd pr#2363; from greywolf@defender.VAS.viewlogic.com (diff)
downloadwireguard-openbsd-6e04bc6b518516bfbb9fdcfe4aa19f8deaf3a176.tar.xz
wireguard-openbsd-6e04bc6b518516bfbb9fdcfe4aa19f8deaf3a176.zip
Zero the instruction counter on Pentium's after detecting one if we have
NTP code compiled in; prevents division errors in microtime()
-rw-r--r--sys/arch/i386/i386/locore.s7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/arch/i386/i386/locore.s b/sys/arch/i386/i386/locore.s
index 9d6eb1775d3..bd1ca34badf 100644
--- a/sys/arch/i386/i386/locore.s
+++ b/sys/arch/i386/i386/locore.s
@@ -437,6 +437,13 @@ try586: /* Use the `cpuid' instruction. */
jb is486 # less than a Pentium
movl $CPU_586,RELOC(_cpu)
+#ifdef NTP
+ xorl %eax,%eax
+ xorl %edx,%edx
+ movl $10,%ecx
+ .byte 0xf, 0x30 # wrmsr (or trap on non-pentium :-)
+#endif
+
2:
/*
* Finished with old stack; load new %esp now instead of later so we