Module Name: src
Committed By: pooka
Date: Tue Sep 7 20:35:51 UTC 2010
Modified Files:
src/sys/lib/libkern/arch/i386: random.S
Log Message:
Rename jump label to something a little more negative. No, I'm
not doing it for cosmetic value or out of angst. See, PIC_PROLOGUE
on i386 uses the "1" label internally. Now, everything would be
fine and dandy for the first 551245 calls to random. After that
p+q is negative and the jump is taken. However, it is taken into
the middle of PIC_PROLOGUE instead of where upon superficial
examination we assumed we are jumping. This causes wrong(tm) things
to happen and "ret" triggers a jump into hyperspace.
(no, I did not see that coming)
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/lib/libkern/arch/i386/random.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/lib/libkern/arch/i386/random.S
diff -u src/sys/lib/libkern/arch/i386/random.S:1.5 src/sys/lib/libkern/arch/i386/random.S:1.6
--- src/sys/lib/libkern/arch/i386/random.S:1.5 Sun Jan 4 17:10:46 2009
+++ src/sys/lib/libkern/arch/i386/random.S Tue Sep 7 20:35:50 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: random.S,v 1.5 2009/01/04 17:10:46 pooka Exp $ */
+/* $NetBSD: random.S,v 1.6 2010/09/07 20:35:50 pooka Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -83,12 +83,12 @@
shld $1,%eax,%edx
andl $0x7fffffff,%eax
addl %edx,%eax
- js 1f
+ js neg
PIC_PROLOGUE
movl %eax,PIC_GOTOFF(randseed)
PIC_EPILOGUE
ret
-1:
+neg:
subl $0x7fffffff,%eax
PIC_PROLOGUE
movl %eax,PIC_GOTOFF(randseed)