Commit | Line | Data |
---|---|---|
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 | |
65 | case "$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 ;; | |
82 | esac | |
83 | ?LINT:set reg2 reg3 reg4 reg5 reg6 reg7 reg8 reg9 reg10 reg11 | |
84 | ?LINT:set reg12 reg13 reg14 reg15 reg16 | |
85 | cat <<EOM | |
86 | ||
87 | Different C compilers on different machines pay attention to different numbers | |
88 | of register declarations. About how many register declarations in each routine | |
89 | does your C compiler pay attention to? (OK to guess) | |
90 | ||
91 | EOM | |
92 | rp="Maximum register declarations?" | |
93 | . ./myread | |
94 | registers=$ans | |
95 | reg1='' | |
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 |