Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/arch



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.




Home | Main Index | Thread Index | Old Index