This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove trailing whitespace on meta-lines in unit files
[metaconfig.git] / dist / U / registers.U
CommitLineData
d8875586
MBT
1?RCS: $Id: registers.U 1 2006-08-24 12:32:52Z rmanfredi $
2?RCS:
3?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
cf39bd7e 4?RCS:
d8875586
MBT
5?RCS: You may redistribute only under the terms of the Artistic Licence,
6?RCS: as specified in the README file that comes with the distribution.
7?RCS: You may reuse parts of this distribution only within the terms of
8?RCS: that same Artistic Licence; a copy of which may be found at the root
9?RCS: of the source tree for dist 4.0.
10?RCS:
11?RCS: $Log: registers.U,v $
12?RCS: Revision 3.0.1.2 1997/02/28 16:19:41 ram
13?RCS: patch61: removed empty ?LINT lines
14?RCS:
15?RCS: Revision 3.0.1.1 1994/10/29 16:28:33 ram
16?RCS: patch36: call ./Cppsym explicitly instead of relying on PATH
17?RCS:
18?RCS: Revision 3.0 1993/08/18 12:09:41 ram
19?RCS: Baseline for dist 3.0 netwide release.
20?RCS:
21?MAKE:registers reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 reg9 reg10 reg11 \
22 reg12 reg13 reg14 reg15 reg16: awk rm Cppsym Myread Oldconfig
23?MAKE: -pick add $@ %<
24?S:registers:
25?S: This variable contains the number of register declarations paid
26?S: attention to by the C compiler.
27?S:.
28?S:reg1:
29?S: This variable, along with reg2, reg3, etc. contains the eventual
30?S: value for the symbols register1, register2, register3, etc. It has
31?S: either the value "register" or is null.
32?S:.
33?C:register1:
34?C: This symbol, along with register2, register3, etc. is either the word
35?C: "register" or null, depending on whether the C compiler pays attention
36?C: to this many register declarations. The intent is that you don't have
37?C: to order your register declarations in the order of importance, so you
38?C: can freely declare register variables in sub-blocks of code and as
39?C: function parameters. Do not use register<n> more than once per routine.
40?C:.
41?LINT:describe reg2 reg3 reg4 reg5 reg6 reg7 reg8 reg9 reg10 reg11
42?LINT:describe reg12 reg13 reg14 reg15 reg16
43?LINT:known register2 register3 register4 register5 register6 register7
44?LINT:known register8 register9 register10 register11 register12 register13
45?LINT:known register14 register15 register16
46?H:#define register1 $reg1 /**/
47?H:#define register2 $reg2 /**/
48?H:#define register3 $reg3 /**/
49?H:#define register4 $reg4 /**/
50?H:#define register5 $reg5 /**/
51?H:#define register6 $reg6 /**/
52?H:#define register7 $reg7 /**/
53?H:#define register8 $reg8 /**/
54?H:#define register9 $reg9 /**/
55?H:#define register10 $reg10 /**/
56?H:#define register11 $reg11 /**/
57?H:#define register12 $reg12 /**/
58?H:#define register13 $reg13 /**/
59?H:#define register14 $reg14 /**/
60?H:#define register15 $reg15 /**/
61?H:#define register16 $reg16 /**/
62?H:.
63?F:!.foo
64: see how many register declarations we want to use
65case "$registers" in
66'')
67 if ./Cppsym vax; then
68 dflt=6
69 elif ./Cppsym sun mc68000 mips; then
70 dflt=10
71 elif ./Cppsym pyr; then
72 dflt=14
73 elif ./Cppsym ns32000 ns16000; then
74 dflt=5
75 elif ./Cppsym $smallmach; then
76 dflt=3
77 else
78 : if you have any other numbers for me, please send them in
79 dflt=6
80 fi;;
81*) dflt=$registers ;;
82esac
83?LINT:set reg2 reg3 reg4 reg5 reg6 reg7 reg8 reg9 reg10 reg11
84?LINT:set reg12 reg13 reg14 reg15 reg16
85cat <<EOM
86
87Different C compilers on different machines pay attention to different numbers
88of register declarations. About how many register declarations in each routine
89does your C compiler pay attention to? (OK to guess)
90
91EOM
92rp="Maximum register declarations?"
93. ./myread
94registers=$ans
95reg1=''
96$awk "BEGIN { for (i=1; i<=16; i++) printf \"reg%d=''\n\", i}" \
97 </dev/null >.foo
98. ./.foo
99$awk "BEGIN { for (i=1; i<=$registers; i++) printf \"reg%d=register\n\", i}" \
100 </dev/null >.foo
101. ./.foo
102$rm -f .foo
103