CVS commit: src/sys/arch
"Jason R Thorpe" <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.cvs |
|---|---|
| Message-ID | <[email protected]> |
Module Name: src Committed By: thorpej Date: Sat Mar 28 22:19:36 UTC 2026 Modified Files: src/sys/arch/amiga/amiga: amiga_init.c genassym.cf locore.s src/sys/arch/amiga/conf: files.amiga src/sys/arch/amiga/dev: clock.c src/sys/arch/amiga/include: param.h src/sys/arch/atari/include: param.h src/sys/arch/cesfic/cesfic: genassym.cf locore.s machdep.c src/sys/arch/cesfic/conf: files.cesfic src/sys/arch/cesfic/include: param.h src/sys/arch/hp300/conf: files.hp300 src/sys/arch/hp300/hp300: clock.c genassym.cf locore.s machdep.c src/sys/arch/hp300/include: param.h src/sys/arch/luna68k/conf: files.luna68k src/sys/arch/luna68k/include: param.h src/sys/arch/luna68k/luna68k: genassym.cf locore.s machdep.c src/sys/arch/m68k/include: m68k.h param.h src/sys/arch/mac68k/include: param.h src/sys/arch/mvme68k/conf: files.mvme68k src/sys/arch/mvme68k/include: param.h src/sys/arch/mvme68k/mvme68k: genassym.cf locore.s machdep.c src/sys/arch/news68k/conf: files.news68k src/sys/arch/news68k/include: param.h src/sys/arch/news68k/news68k: genassym.cf locore.s machdep.c src/sys/arch/next68k/conf: files.next68k src/sys/arch/next68k/include: param.h src/sys/arch/next68k/next68k: genassym.cf locore.s machdep.c src/sys/arch/sun2/include: param.h src/sys/arch/sun2/sun2: genassym.cf locore.s locore2.c src/sys/arch/sun3/include: param.h src/sys/arch/sun3/sun3: genassym.cf locore.s locore2.c src/sys/arch/sun3/sun3x: genassym.cf locore.s machdep.c src/sys/arch/sun68k/conf: files.sun68k src/sys/arch/virt68k/include: param.h src/sys/arch/x68k/conf: files.x68k src/sys/arch/x68k/dev: mfp.c src/sys/arch/x68k/include: param.h src/sys/arch/x68k/x68k: genassym.cf locore.s machdep.c Added Files: src/sys/arch/m68k/m68k: delay.s Log Message: Re-factor delay() on m68k. We've settled on a blend of the amiga version and the mvme68k version. Specifically, the amiga flavor takes a usec arg and applies the scaling factor in delay() itself, whereas the the mvme68k flavor scaled the argument in a macro before calling _delay() to do the work. Presumably this was to take advantage of constant-folding, because the argument to delay() is often a constant. We instead scale inside delay() because, hey, it's delay() executing a couple of additional instructions isn't going to kill us. Also, it allows for better diagnostic checking of delay values without exposing that in the ABI. We picked the 68060-friendly scaling factor of 1024 (shift-by-10) rather than 256 (shift-by-8). Macros to estimate the delay_divisor for a given CPU type (20/30, 40, 60) using the correct scaling factor are provided to make everything easier, as is a "weighting" macro that can be used when calibrating the delay_divisor against a known timing source (explained in a comment). atari, mac68k, and virt68k continue using their own bespoke delay() functions, for their own various (and valid) reasons, but now the m68k delay() ABI is at least common across all platforms. To generate a diff of this commit: cvs rdiff -u -r1.137 -r1.138 src/sys/arch/amiga/amiga/amiga_init.c cvs rdiff -u -r1.39 -r1.40 src/sys/arch/amiga/amiga/genassym.cf cvs rdiff -u -r1.185 -r1.186 src/sys/arch/amiga/amiga/locore.s cvs rdiff -u -r1.188 -r1.189 src/sys/arch/amiga/conf/files.amiga cvs rdiff -u -r1.59 -r1.60 src/sys/arch/amiga/dev/clock.c cvs rdiff -u -r1.50 -r1.51 src/sys/arch/amiga/include/param.h cvs rdiff -u -r1.35 -r1.36 src/sys/arch/atari/include/param.h cvs rdiff -u -r1.25 -r1.26 src/sys/arch/cesfic/cesfic/genassym.cf cvs rdiff -u -r1.66 -r1.67 src/sys/arch/cesfic/cesfic/locore.s cvs rdiff -u -r1.80 -r1.81 src/sys/arch/cesfic/cesfic/machdep.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/cesfic/conf/files.cesfic cvs rdiff -u -r1.13 -r1.14 src/sys/arch/cesfic/include/param.h cvs rdiff -u -r1.104 -r1.105 src/sys/arch/hp300/conf/files.hp300 cvs rdiff -u -r1.41 -r1.42 src/sys/arch/hp300/hp300/clock.c cvs rdiff -u -r1.56 -r1.57 src/sys/arch/hp300/hp300/genassym.cf cvs rdiff -u -r1.215 -r1.216 src/sys/arch/hp300/hp300/locore.s cvs rdiff -u -r1.258 -r1.259 src/sys/arch/hp300/hp300/machdep.c cvs rdiff -u -r1.53 -r1.54 src/sys/arch/hp300/include/param.h cvs rdiff -u -r1.38 -r1.39 src/sys/arch/luna68k/conf/files.luna68k cvs rdiff -u -r1.15 -r1.16 src/sys/arch/luna68k/include/param.h cvs rdiff -u -r1.32 -r1.33 src/sys/arch/luna68k/luna68k/genassym.cf cvs rdiff -u -r1.111 -r1.112 src/sys/arch/luna68k/luna68k/locore.s cvs rdiff -u -r1.121 -r1.122 src/sys/arch/luna68k/luna68k/machdep.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/m68k/include/m68k.h cvs rdiff -u -r1.24 -r1.25 src/sys/arch/m68k/include/param.h cvs rdiff -u -r0 -r1.1 src/sys/arch/m68k/m68k/delay.s cvs rdiff -u -r1.46 -r1.47 src/sys/arch/mac68k/include/param.h cvs rdiff -u -r1.74 -r1.75 src/sys/arch/mvme68k/conf/files.mvme68k cvs rdiff -u -r1.33 -r1.34 src/sys/arch/mvme68k/include/param.h cvs rdiff -u -r1.51 -r1.52 src/sys/arch/mvme68k/mvme68k/genassym.cf cvs rdiff -u -r1.164 -r1.165 src/sys/arch/mvme68k/mvme68k/locore.s cvs rdiff -u -r1.178 -r1.179 src/sys/arch/mvme68k/mvme68k/machdep.c cvs rdiff -u -r1.45 -r1.46 src/sys/arch/news68k/conf/files.news68k cvs rdiff -u -r1.17 -r1.18 src/sys/arch/news68k/include/param.h cvs rdiff -u -r1.43 -r1.44 src/sys/arch/news68k/news68k/genassym.cf cvs rdiff -u -r1.114 -r1.115 src/sys/arch/news68k/news68k/locore.s cvs rdiff -u -r1.130 -r1.131 src/sys/arch/news68k/news68k/machdep.c cvs rdiff -u -r1.49 -r1.50 src/sys/arch/next68k/conf/files.next68k cvs rdiff -u -r1.13 -r1.14 src/sys/arch/next68k/include/param.h cvs rdiff -u -r1.37 -r1.38 src/sys/arch/next68k/next68k/genassym.cf cvs rdiff -u -r1.109 -r1.110 src/sys/arch/next68k/next68k/locore.s cvs rdiff -u -r1.131 -r1.132 src/sys/arch/next68k/next68k/machdep.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/sun2/include/param.h cvs rdiff -u -r1.18 -r1.19 src/sys/arch/sun2/sun2/genassym.cf cvs rdiff -u -r1.50 -r1.51 src/sys/arch/sun2/sun2/locore.s cvs rdiff -u -r1.31 -r1.32 src/sys/arch/sun2/sun2/locore2.c cvs rdiff -u -r1.62 -r1.63 src/sys/arch/sun3/include/param.h cvs rdiff -u -r1.23 -r1.24 src/sys/arch/sun3/sun3/genassym.cf cvs rdiff -u -r1.124 -r1.125 src/sys/arch/sun3/sun3/locore.s cvs rdiff -u -r1.106 -r1.107 src/sys/arch/sun3/sun3/locore2.c cvs rdiff -u -r1.21 -r1.22 src/sys/arch/sun3/sun3x/genassym.cf cvs rdiff -u -r1.88 -r1.89 src/sys/arch/sun3/sun3x/locore.s cvs rdiff -u -r1.143 -r1.144 src/sys/arch/sun3/sun3x/machdep.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/sun68k/conf/files.sun68k cvs rdiff -u -r1.1 -r1.2 src/sys/arch/virt68k/include/param.h cvs rdiff -u -r1.91 -r1.92 src/sys/arch/x68k/conf/files.x68k cvs rdiff -u -r1.32 -r1.33 src/sys/arch/x68k/dev/mfp.c cvs rdiff -u -r1.31 -r1.32 src/sys/arch/x68k/include/param.h cvs rdiff -u -r1.43 -r1.44 src/sys/arch/x68k/x68k/genassym.cf cvs rdiff -u -r1.158 -r1.159 src/sys/arch/x68k/x68k/locore.s cvs rdiff -u -r1.220 -r1.221 src/sys/arch/x68k/x68k/machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.