2 |
7u83 |
1 |
<!-- Crown Copyright (c) 1998 -->
|
|
|
2 |
<HTML>
|
|
|
3 |
<HEAD>
|
|
|
4 |
<TITLE>Footnotes</TITLE>
|
|
|
5 |
</HEAD>
|
|
|
6 |
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#400080" ALINK="#FF0000">
|
|
|
7 |
<A NAME=S99>
|
|
|
8 |
<H1>TDF Guide, Issue 4.0 </H1>
|
|
|
9 |
<H3>January 1998</H3>
|
|
|
10 |
<IMG SRC="../images/no_next.gif" ALT="next section">
|
|
|
11 |
<IMG SRC="../images/no_prev.gif" ALT="previous section">
|
|
|
12 |
<A HREF="guide1.html"><IMG SRC="../images/top.gif" ALT="current document"></A>
|
|
|
13 |
<A HREF="../index.html"><IMG SRC="../images/home.gif" ALT="TenDRA home page">
|
|
|
14 |
</A>
|
|
|
15 |
<IMG SRC="../images/no_index.gif" ALT="document index"><P>
|
|
|
16 |
|
|
|
17 |
<HR>
|
|
|
18 |
<H2><A NAME=70>Footnote 1</A></H2>
|
|
|
19 |
There are facilities to allow extensions to the number of constructors,
|
|
|
20 |
so it is not quite as simple as this<P>
|
|
|
21 |
|
|
|
22 |
<HR>
|
|
|
23 |
<H2><A NAME=71>Footnote 2</A></H2>
|
|
|
24 |
The "tld" UNITs gives usage information for namess to aid
|
|
|
25 |
the linker, tld, to discover which namess have definitions and some
|
|
|
26 |
usage information. The C producer also optionally constructs "diagnostics"
|
|
|
27 |
UNITs (to give run-time diagnostic information).<P>
|
|
|
28 |
|
|
|
29 |
<HR>
|
|
|
30 |
<H2><A NAME=72>Footnote 3</A></H2>
|
|
|
31 |
There is a similar distinction between tags introduced to be locals
|
|
|
32 |
of a procedure using identify and variable (see
|
|
|
33 |
<A HREF="guide7.html#35">section 5.3.1</A>)<P>
|
|
|
34 |
|
|
|
35 |
<HR>
|
|
|
36 |
<H2><A NAME=73>Footnote 4</A></H2>
|
|
|
37 |
Note that is not generally true for C bitfields; most C ABIs have
|
|
|
38 |
(different) rules for putting in padding bits depending on the size
|
|
|
39 |
of the bitfield and its relation with the natural alignments. This
|
|
|
40 |
is a fruitful source of errors in data exchange between different
|
|
|
41 |
C ABIs For more on similar limitations of bitfields in TDF (see
|
|
|
42 |
<A HREF="guide9.html#16">Assigning and extracting bitfields</A>).<P>
|
|
|
43 |
|
|
|
44 |
<HR>
|
|
|
45 |
<H2><A NAME=74>Footnote 5</A></H2>
|
|
|
46 |
The vararg construction in C are implemented by giving more actuals
|
|
|
47 |
than formals; the extra parameters are accessed by offset arithmetic
|
|
|
48 |
with a pointer to a formal, using parameter_alignment to pad the offsets.<P>
|
|
|
49 |
|
|
|
50 |
<HR>
|
|
|
51 |
<H2><A NAME=75>Footnote 6</A></H2>
|
|
|
52 |
If a formal parameter is to be used in this way, it should be marked
|
|
|
53 |
as having out_par ACCESS in its corresponding TAGSHACC in <I>callers_intro</I>.
|
|
|
54 |
|
|
|
55 |
<HR>
|
|
|
56 |
<H2><A NAME=76>Footnote 7</A></H2>
|
|
|
57 |
However see also initial_value in <A HREF="guide5.html#19">section
|
|
|
58 |
3.2</A><P>
|
|
|
59 |
|
|
|
60 |
<HR>
|
|
|
61 |
<H2><A NAME=78>Footnote 8</A></H2>
|
|
|
62 |
Exercise for the reader: what are the SORTs of these parameters?<P>
|
|
|
63 |
The current C producer does this for some of the constructs, but not
|
|
|
64 |
in any systematic manner; perhaps it will change.<P>
|
|
|
65 |
|
|
|
66 |
<HR>
|
|
|
67 |
<H2><A NAME=79>Footnote 9</A></H2>
|
|
|
68 |
The order-specifying constructors are conditional, identify, repeat,
|
|
|
69 |
labelled, sequence and variable<P>
|
|
|
70 |
|
|
|
71 |
<HR>
|
|
|
72 |
<H2><A NAME=80>Footnote 10</A></H2>
|
|
|
73 |
A sufficient condition for not side-effecting in this sense is that
|
|
|
74 |
there are no apply_procs or local_allocs in E; that any assignments
|
|
|
75 |
in E are to variables defined in E; and that any branches in E are
|
|
|
76 |
to labels defined in conditionals in E<P>
|
|
|
77 |
|
|
|
78 |
<HR>
|
|
|
79 |
<H2><A NAME=81>Footnote 11</A></H2>
|
|
|
80 |
There are analogous rules for labelled and repeat with unused LABELs.<P>
|
|
|
81 |
|
|
|
82 |
<HR>
|
|
|
83 |
<H2><A NAME=82>Footnote 12</A></H2>
|
|
|
84 |
This has to be modified if B contains any uses of local_free_all or
|
|
|
85 |
last_local.<P>
|
|
|
86 |
|
|
|
87 |
<HR>
|
|
|
88 |
<H2><A NAME=83>Footnote 13</A></H2>
|
|
|
89 |
However, we may find that the mapping of a constraint allows extra
|
|
|
90 |
relationships for a class of architectures which do not hold in all
|
|
|
91 |
generality; this may mean that some constructions are defined on this
|
|
|
92 |
class while still being undefined in others (see <A HREF="guide15.html#0">section
|
|
|
93 |
13</A>).<P>
|
|
|
94 |
|
|
|
95 |
<HR>
|
|
|
96 |
<H2><A NAME=84>Footnote 14</A></H2>
|
|
|
97 |
I could equally have given simply shape_offset(sh_int) for S_i, but
|
|
|
98 |
the above formulation is more uniform with respect to selection OFFSETs.<P>
|
|
|
99 |
|
|
|
100 |
<HR>
|
|
|
101 |
<H2><A NAME=85>Footnote 15</A></H2>
|
|
|
102 |
For most architectures, these definition are dependent only on a few
|
|
|
103 |
constants such as the maximum length of bitfield., expessed as tokens
|
|
|
104 |
for the target. The precise specification of such target dependent
|
|
|
105 |
tokens is of current interest outside the scope of this document.<P>
|
|
|
106 |
<HR>
|
|
|
107 |
|
|
|
108 |
<P><I>Part of the <A HREF="../index.html">TenDRA Web</A>.<BR>Crown
|
|
|
109 |
Copyright © 1998.</I></P>
|
|
|
110 |
</BODY>
|
|
|
111 |
</HTML>
|