spl "ed script" improvement for KDJ-11
Steven M. Schultz
sms at wlv.imsd.contel.com
Thu Jun 6 14:12:50 AEST 1991
Subject: spl "ed script" improvement for KDJ-11
Index: /sys/conf/config,spl/<several> 2.11BSD
Description:
The 'ed' scripts which convert calls to the splN() functions
do not take advantage of the fact that the KDJ-11 processor
has the 'spl' instruction.
Repeat-By:
Examine the generated code in a kernel generated for "PDP11=73"
kernel. Not that the C statement: "s = spl5()" generates
the sequence "mfps r0; mtps $0240" rather than the shorter/faster
"mfps r0; spl 5".
In the networking the same C statement generates "mov 0177776,r0;
movb $0240, 0177776" rather than the shorter/faster sequence
"mfps r0; movb $0240, 0177776".
Also, the assembler knows about the 'spl', 'mfps' and 'mtps'
instructions - there is no need to define them at the beginning
of the scripts.
Two new scripts are included. :splfix.mfps uses the 'mfps' and
'spl' instructions and is used to edit the kernel files when
compiling a kernel with PDP11=73 (or 83,84,94). :splfix.movb+mfps
uses the 'mfps' and 'movb' instructions because 'spl' and 'mtps'
are not legal in supervisor mode (used bu the networking).
The 84, 93 and 94 were added to the same case as the 73 in
the 'config' script. The 84 was deleted from the 44/70 case.
Fix:
Apply the patch "/tmp/dif" (multiple files updated by it) and
install the new scripts ":splfix.mfps" and "splfix.movb+mfps".
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. cd /sys/conf
# 4. Execute the file with /bin/sh (not csh) to create:
# /tmp/dif
# spl/:splfix.mfps
# spl/:splfix.movb+mfps
# spl_3com/:splfix.mfps
# spl_3com/:splfix.movb+mfps
# This archive created: Wed Jun 5 20:22:39 1991
export PATH; PATH=/bin:/usr/bin:$PATH
if test -f '/tmp/dif'
then
echo shar: "will not over-write existing file '/tmp/dif'"
else
sed 's/^X//' << \SHAR_EOF > '/tmp/dif'
X*** spl/:splfix.mtps.old Mon May 2 08:08:46 1988
X--- spl/:splfix.mtps Wed Jun 5 14:26:45 1991
X***************
X*** 1,7 ****
X- 0a
X- mfps = 106700^tst
X- mtps = 106400^tst
X- .
X g/jsr pc,__spl0/s//mtps $0/
X g/jsr pc,__spl1/s//mtps $40/
X g/jsr pc,__splsof/s//mtps $40/
X--- 1,3 ----
X*** spl/:splfix.profil.old Mon May 2 08:08:46 1988
X--- spl/:splfix.profil Wed Jun 5 14:28:08 1991
X***************
X*** 1,6 ****
X- 0a
X- spl = 230
X- .
X g/jsr pc,__spl0/s//spl 0/
X g/jsr pc,__spl1/s//spl 1/
X g/jsr pc,__splsof/s//spl 1/
X--- 1,3 ----
X*** spl/:splfix.spl.old Mon May 2 08:08:47 1988
X--- spl/:splfix.spl Wed Jun 5 14:27:43 1991
X***************
X*** 1,6 ****
X- 0a
X- spl = 230
X- .
X g/jsr pc,__spl0/s//spl 0/
X g/jsr pc,__spl1/s//spl 1/
X g/jsr pc,__splsof/s//spl 1/
X--- 1,3 ----
X*** spl_3com/:splfix.mtps.old Mon May 2 08:09:07 1988
X--- spl_3com/:splfix.mtps Wed Jun 5 14:31:40 1991
X***************
X*** 1,7 ****
X- 0a
X- mfps = 106700^tst
X- mtps = 106400^tst
X- .
X g/jsr pc,__spl0/s//mtps $0/
X g/jsr pc,__spl1/s//mtps $40/
X g/jsr pc,__splsof/s//mtps $40/
X--- 1,3 ----
X*** spl_3com/:splfix.profil.old Mon May 2 08:09:08 1988
X--- spl_3com/:splfix.profil Wed Jun 5 14:31:51 1991
X***************
X*** 1,6 ****
X- 0a
X- spl = 230
X- .
X g/jsr pc,__spl0/s//spl 0/
X g/jsr pc,__spl1/s//spl 1/
X g/jsr pc,__splsof/s//spl 1/
X--- 1,3 ----
X*** spl_3com/:splfix.spl.old Mon May 2 08:09:08 1988
X--- spl_3com/:splfix.spl Wed Jun 5 14:31:58 1991
X***************
X*** 1,6 ****
X- 0a
X- spl = 230
X- .
X g/jsr pc,__spl0/s//spl 0/
X g/jsr pc,__spl1/s//spl 1/
X g/jsr pc,__splsof/s//spl 1/
X--- 1,3 ----
X*** config.old Wed Aug 22 18:29:05 1990
X--- config Wed Jun 5 15:52:56 1991
X***************
X*** 60,65 ****
X--- 60,66 ----
X case $PDP11 in
X 23|24|34)
X KERN_NONSEP=YES
X+ NETFIX=:splfix.mtps
X SPLFIX=:splfix.mtps;;
X GENERIC)
X # if [ $NONFP = NO ]; then
X***************
X*** 68,87 ****
X # fi
X # eventually: KERN_NONSEP=YES
X KERN_NONSEP=NO
X SPLFIX=:splfix.movb;;
X 35|40|60)
X KERN_NONSEP=YES
X SPLFIX=:splfix.movb;;
X! 53|73|83)
X KERN_NONSEP=NO
X! SPLFIX=:splfix.mtps;;
X! 44|45|50|55|70|84)
X KERN_NONSEP=NO
X SPLFIX=:splfix.spl;;
X *)
X echo "$0: unrecognized PDP11 type $PDP11."
X echo 'use GENERIC, 23, 24, 34, 35, 40, 44, 45, 50, 53, 55,'
X! echo ' 60, 70, 73, 83, 84.'
X exit 1;;
X esac
X
X--- 69,92 ----
X # fi
X # eventually: KERN_NONSEP=YES
X KERN_NONSEP=NO
X+ NETFIX=:splfix.movb
X SPLFIX=:splfix.movb;;
X 35|40|60)
X KERN_NONSEP=YES
X+ NETFIX=:splfix.movb
X SPLFIX=:splfix.movb;;
X! 53|73|83|84|93|94)
X KERN_NONSEP=NO
X! NETFIX=:splfix.movb+mfps
X! SPLFIX=:splfix.mfps;;
X! 44|45|50|55|70)
X KERN_NONSEP=NO
X+ NETFIX=:splfix.movb
X SPLFIX=:splfix.spl;;
X *)
X echo "$0: unrecognized PDP11 type $PDP11."
X echo 'use GENERIC, 23, 24, 34, 35, 40, 44, 45, 50, 53, 55,'
X! echo ' 60, 70, 73, 83, 84, 93, 94'
X exit 1;;
X esac
X
X***************
X*** 100,111 ****
X echo "Copying standard files to ../$MACHINE."
X if [ $NEC = 0 ]; then
X if [ $UCB_NET = YES ]; then
X! cp spl/:splfix.movb ../$MACHINE/NETSPLFIX
X fi
X cp spl/$SPLFIX ../$MACHINE/SPLFIX
X else
X if [ $UCB_NET = YES ]; then
X! cp spl_3com/:splfix.movb ../$MACHINE/NETSPLFIX
X fi
X cp spl_3com/$SPLFIX ../$MACHINE/SPLFIX
X fi
X--- 105,116 ----
X echo "Copying standard files to ../$MACHINE."
X if [ $NEC = 0 ]; then
X if [ $UCB_NET = YES ]; then
X! cp spl/$NETFIX ../$MACHINE/NETSPLFIX
X fi
X cp spl/$SPLFIX ../$MACHINE/SPLFIX
X else
X if [ $UCB_NET = YES ]; then
X! cp spl_3com/$NETFIX ../$MACHINE/NETSPLFIX
X fi
X cp spl_3com/$SPLFIX ../$MACHINE/SPLFIX
X fi
SHAR_EOF
fi
if test -f 'spl/:splfix.mfps'
then
echo shar: "will not over-write existing file 'spl/:splfix.mfps'"
else
sed 's/^X//' << \SHAR_EOF > 'spl/:splfix.mfps'
Xg/jsr pc,__spl0/s//spl 0/
Xg/jsr pc,__spl1/s//spl 1/
Xg/jsr pc,__splsof/s//spl 1/
Xg/jsr pc,__spl2/s//spl 2/
Xg/jsr pc,__splnet/s//spl 2/
Xg/jsr pc,__spl3/s//spl 3/
Xg/jsr pc,__spl4/s//spl 4/
Xg/jsr pc,__spl5/s//spl 5/
Xg/jsr pc,__splbio/s//spl 5/
Xg/jsr pc,__splimp/s//spl 5/
Xg/jsr pc,__spltty/s//spl 5/
Xg/jsr pc,__spl6/s//spl 6/
Xg/jsr pc,__splclo/s//spl 6/
Xg/jsr pc,__spl7/s//spl 7/
Xg/jsr pc,__splhig/s//spl 7/
Xg/jsr pc,_spl0/s//mfps r0;spl 0/
Xg/jsr pc,_spl1/s//mfps r0;spl 1/
Xg/jsr pc,_splsoft/s//mfps r0;spl 1/
Xg/jsr pc,_spl2/s//mfps r0;spl 2/
Xg/jsr pc,_splnet/s//mfps r0;spl 2/
Xg/jsr pc,_spl3/s//mfps r0;spl 3/
Xg/jsr pc,_spl4/s//mfps r0;spl 4/
Xg/jsr pc,_spl5/s//mfps r0;spl 5/
Xg/jsr pc,_splbio/s//mfps r0;spl 5/
Xg/jsr pc,_splimp/s//mfps r0;spl 5/
Xg/jsr pc,_spltty/s//mfps r0;spl 5/
Xg/jsr pc,_spl6/s//mfps r0;spl 6/
Xg/jsr pc,_splcloc/s//mfps r0;spl 6/
Xg/jsr pc,_spl7/s//mfps r0;spl 7/
Xg/jsr pc,_splhigh/s//mfps r0;spl 7/
Xw
Xq
SHAR_EOF
fi
if test -f 'spl/:splfix.movb+mfps'
then
echo shar: "will not over-write existing file 'spl/:splfix.movb+mfps'"
else
sed 's/^X//' << \SHAR_EOF > 'spl/:splfix.movb+mfps'
Xg/jsr pc,__spl0/s//clrb 177776/
Xg/jsr pc,__spl1/s//movb $40, 177776/
Xg/jsr pc,__splsof/s//movb $40, 177776/
Xg/jsr pc,__spl2/s//movb $100, 177776/
Xg/jsr pc,__splnet/s//movb $100, 177776/
Xg/jsr pc,__spl3/s//movb $140, 177776/
Xg/jsr pc,__spl4/s//movb $200, 177776/
Xg/jsr pc,__spl5/s//movb $240, 177776/
Xg/jsr pc,__splimp/s//movb $240, 177776/
Xg/jsr pc,__splbio/s//movb $240, 177776/
Xg/jsr pc,__spltty/s//movb $240, 177776/
Xg/jsr pc,__spl6/s//movb $300, 177776/
Xg/jsr pc,__splclo/s//movb $300, 177776/
Xg/jsr pc,__spl7/s//movb $340, 177776/
Xg/jsr pc,__splhig/s//movb $340, 177776/
Xg/jsr pc,_spl0/s//mfps r0;clrb 177776/
Xg/jsr pc,_spl1/s//mfps r0;movb $40, 177776/
Xg/jsr pc,_splsoft/s//mfps r0;movb $40, 177776/
Xg/jsr pc,_spl2/s//mfps r0;movb $100, 177776/
Xg/jsr pc,_splnet/s//mfps r0;movb $100, 177776/
Xg/jsr pc,_spl3/s//mfps r0;movb $140, 177776/
Xg/jsr pc,_spl4/s//mfps r0;movb $200, 177776/
Xg/jsr pc,_spl5/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_splbio/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_splimp/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_spltty/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_spl6/s//mfps r0;movb $300, 177776/
Xg/jsr pc,_splcloc/s//mfps r0;movb $300, 177776/
Xg/jsr pc,_spl7/s//mfps r0;movb $340,177776/
Xg/jsr pc,_splhigh/s//mfps r0;movb $340, 177776/
Xw
Xq
SHAR_EOF
fi
if test -f 'spl_3com/:splfix.mfps'
then
echo shar: "will not over-write existing file 'spl_3com/:splfix.mfps'"
else
sed 's/^X//' << \SHAR_EOF > 'spl_3com/:splfix.mfps'
Xg/jsr pc,__spl0/s//spl 0/
Xg/jsr pc,__spl1/s//spl 1/
Xg/jsr pc,__splsof/s//spl 1/
Xg/jsr pc,__spl2/s//spl 2/
Xg/jsr pc,__splnet/s//spl 2/
Xg/jsr pc,__spl3/s//spl 3/
Xg/jsr pc,__spl4/s//spl 4/
Xg/jsr pc,__spl5/s//spl 5/
Xg/jsr pc,__splimp/s//spl 6/
Xg/jsr pc,__splbio/s//spl 5/
Xg/jsr pc,__spltty/s//spl 5/
Xg/jsr pc,__spl6/s//spl 6/
Xg/jsr pc,__splclo/s//spl 6/
Xg/jsr pc,__spl7/s//spl 7/
Xg/jsr pc,__splhig/s//spl 7/
Xg/jsr pc,_spl0/s//mfps r0;spl 0/
Xg/jsr pc,_spl1/s//mfps r0;spl 1/
Xg/jsr pc,_splsoft/s//mfps r0;spl 1/
Xg/jsr pc,_spl2/s//mfps r0;spl 2/
Xg/jsr pc,_splnet/s//mfps r0;spl 2/
Xg/jsr pc,_spl3/s//mfps r0;spl 3/
Xg/jsr pc,_spl4/s//mfps r0;spl 4/
Xg/jsr pc,_spl5/s//mfps r0;spl 5/
Xg/jsr pc,_splbio/s//mfps r0;spl 5/
Xg/jsr pc,_splimp/s//mfps r0;spl 6/
Xg/jsr pc,_spltty/s//mfps r0;spl 5/
Xg/jsr pc,_spl6/s//mfps r0;spl 6/
Xg/jsr pc,_splcloc/s//mfps r0;spl 6/
Xg/jsr pc,_spl7/s//mfps r0;spl 7/
Xg/jsr pc,_splhigh/s//mfps r0;spl 7/
Xw
Xq
SHAR_EOF
fi
if test -f 'spl_3com/:splfix.movb+mfps'
then
echo shar: "will not over-write existing file 'spl_3com/:splfix.movb+mfps'"
else
sed 's/^X//' << \SHAR_EOF > 'spl_3com/:splfix.movb+mfps'
Xg/jsr pc,__spl0/s//clrb 177776/
Xg/jsr pc,__spl1/s//movb $40, 177776/
Xg/jsr pc,__splsof/s//movb $40, 177776/
Xg/jsr pc,__spl2/s//movb $100, 177776/
Xg/jsr pc,__splnet/s//movb $100, 177776/
Xg/jsr pc,__spl3/s//movb $140, 177776/
Xg/jsr pc,__spl4/s//movb $200, 177776/
Xg/jsr pc,__spl5/s//movb $240, 177776/
Xg/jsr pc,__splimp/s//movb $300, 177776/
Xg/jsr pc,__splbio/s//movb $240, 177776/
Xg/jsr pc,__spltty/s//movb $240, 177776/
Xg/jsr pc,__spl6/s//movb $300, 177776/
Xg/jsr pc,__splclo/s//movb $300, 177776/
Xg/jsr pc,__spl7/s//movb $340, 177776/
Xg/jsr pc,__splhig/s//movb $340, 177776/
Xg/jsr pc,_spl0/s//mfps r0;clrb 177776/
Xg/jsr pc,_spl1/s//mfps r0;movb $40, 177776/
Xg/jsr pc,_splsoft/s//mfps r0;movb $40, 177776/
Xg/jsr pc,_spl2/s//mfps r0;movb $100, 177776/
Xg/jsr pc,_splnet/s//mfps r0;movb $100, 177776/
Xg/jsr pc,_spl3/s//mfps r0;movb $140, 177776/
Xg/jsr pc,_spl4/s//mfps r0;movb $200, 177776/
Xg/jsr pc,_spl5/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_splbio/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_splimp/s//mfps r0;movb $300, 177776/
Xg/jsr pc,_spltty/s//mfps r0;movb $240, 177776/
Xg/jsr pc,_spl6/s//mfps r0;movb $300, 177776/
Xg/jsr pc,_splcloc/s//mfps r0;movb $300, 177776/
Xg/jsr pc,_spl7/s//mfps r0;movb $340,177776/
Xg/jsr pc,_splhigh/s//mfps r0;movb $340, 177776/
Xw
Xq
SHAR_EOF
fi
exit 0
# End of shell archive
More information about the Comp.bugs.2bsd
mailing list