3
# DP: Updates from the cell-4_3-branch (documentation) up to 20081023
6
if [ $# -eq 3 -a "$2" = '-d' ]; then
9
elif [ $# -ne 1 ]; then
10
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
15
patch $pdir -f --no-backup-if-mismatch -p1 < $0
16
#cd ${dir}gcc && autoconf
19
patch $pdir -f --no-backup-if-mismatch -R -p1 < $0
20
#rm ${dir}gcc/configure
23
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
28
diff -urN --exclude=.svn gcc-4_3-branch/gcc/doc/extend.texi cell-4_3-branch/gcc/doc/extend.texi
29
--- gcc-4_3-branch/gcc/doc/extend.texi 2008-07-21 18:39:25.000000000 +0200
30
+++ cell-4_3-branch/gcc/doc/extend.texi 2008-10-19 11:04:46.000000000 +0200
32
* Decimal Float:: Decimal Floating Types.
33
* Hex Floats:: Hexadecimal floating-point constants.
34
* Fixed-Point:: Fixed-Point Types.
35
+* Named Address Spaces::Named address spaces.
36
* Zero Length:: Zero-length arrays.
37
* Variable Length:: Arrays whose length is computed at run time.
38
* Empty Structures:: Structures with no members.
39
@@ -1119,6 +1120,31 @@
41
Fixed-point types are supported by the DWARF2 debug information format.
43
+@node Named Address Spaces
44
+@section Named address spaces
45
+@cindex named address spaces
47
+As an extension, the GNU C compiler supports named address spaces as
48
+defined in the N1169 draft of ISO/IEC DTR 18037. Support for named
49
+address spaces in GCC will evolve as the draft technical report changes.
50
+Calling conventions for any target might also change. At present, only
51
+the SPU target supports other address spaces. On the SPU target, for
52
+example, variables may be declared as belonging to another address space
53
+by qualifying the type with the @var{__ea} address space identifier:
59
+When the variable @var{i} is accessed, the compiler will generate
60
+special code to access this variable. It may use runtime library
61
+support, or generate special machine instructions to access that address
64
+The @var{__ea} identifier may be used exactly like any other C type
65
+qualifier (e.g. const or volatile). See the N1169 document for more
69
@section Arrays of Length Zero
70
@cindex arrays of length zero
71
@@ -8876,9 +8902,10 @@
74
Compiling with @option{-maltivec} adds keywords @code{__vector},
75
-@code{__pixel}, and @code{__bool}. Macros @option{vector},
76
-@code{pixel}, and @code{bool} are defined in @code{<altivec.h>} and can
78
+@code{vector}, @code{__pixel}, @code{pixel}, @code{__bool} and
79
+@code{bool}. When compiling ISO C, the context-sensitive substitution
80
+of the keywords @code{vector}, @code{pixel} and @code{bool} is
81
+disabled. To use them, you must include @code{<altivec.h>} instead.
84
GCC allows using a @code{typedef} name as the type specifier for a
85
diff -urN --exclude=.svn gcc-4_3-branch/gcc/doc/invoke.texi cell-4_3-branch/gcc/doc/invoke.texi
86
--- gcc-4_3-branch/gcc/doc/invoke.texi 2008-09-20 19:47:51.000000000 +0200
87
+++ cell-4_3-branch/gcc/doc/invoke.texi 2008-10-23 14:52:07.000000000 +0200
89
-msafe-dma -munsafe-dma @gol
91
-msmall-mem -mlarge-mem -mstdmain @gol
92
--mfixed-range=@var{register-range}}
93
+-mfixed-range=@var{register-range} @gol
95
+-mcache-size=@var{cache-size} @gol
96
+-matomic-updates -mno-atomic-updates}
98
@emph{System V Options}
99
@gccoptlist{-Qy -Qn -YP,@var{paths} -Ym,@var{dir}}
100
@@ -14605,6 +14608,34 @@
101
v850e and v850e1 flavors of the v850 architecture. The default is
102
@option{-mno-disable-callt} which allows the CALLT instruction to be used.
109
+Compile code assuming that pointers to the __ea address space are either
110
+32 or 64 bits wide. The default is 32 bits. As this is an ABI changing
111
+option, all object code in an executable must be compiled with the same
114
+@item -mcache-size=@var{cache-size}
115
+@opindex mcache-size
117
+This option controls the version of libgcc that the compiler links to an
118
+executable and selects software cache support with a particular software
119
+cache size. Possible options for @var{cache-size} are @samp{8},
120
+@samp{16}, @samp{32}, @samp{64} and @samp{128}. The default cache size
123
+@item -matomic-updates
124
+@itemx -mno-atomic-updates
125
+@opindex matomic-updates
126
+@opindex mno-atomic-updates
128
+This option controls the version of libgcc that the compiler links to an
129
+executable and selects whether atomic updates to the software cache are
130
+used. The default behavior is to use atomic updates.
135
diff -urN --exclude=.svn gcc-4_3-branch/gcc/doc/rtl.texi cell-4_3-branch/gcc/doc/rtl.texi
136
--- gcc-4_3-branch/gcc/doc/rtl.texi 2008-07-21 18:39:25.000000000 +0200
137
+++ cell-4_3-branch/gcc/doc/rtl.texi 2008-10-19 11:04:46.000000000 +0200
140
@item MEM_ALIGN (@var{x})
141
The known alignment in bits of the memory reference.
143
+@findex MEM_ADDR_SPACE
144
+@item MEM_ADDR_SPACE (@var{x})
145
+The address space of the memory reference. This will commonly be zero
146
+for the generic address space.
150
diff -urN --exclude=.svn gcc-4_3-branch/gcc/doc/tm.texi cell-4_3-branch/gcc/doc/tm.texi
151
--- gcc-4_3-branch/gcc/doc/tm.texi 2008-07-21 18:39:25.000000000 +0200
152
+++ cell-4_3-branch/gcc/doc/tm.texi 2008-10-23 13:33:41.000000000 +0200
153
@@ -1419,13 +1419,46 @@
154
a floating-point mode and the target format is IEEE@.
157
-@defmac ROUND_TOWARDS_ZERO
158
-If defined, this macro should be true if the prevailing rounding
159
-mode is towards zero. A true value has the following effects:
160
+@defmac DENORM_OPERANDS_ARE_ZERO (@var{mode})
161
+If defined, this macro should be true for @var{mode} if a denormalized
162
+number should be converted to zero before constant folding an operation.
164
+The default definition of this macro is false for all modes.
167
+@defmac DENORM_RESULTS_ARE_ZERO (@var{mode})
168
+If defined, this macro should be true for @var{mode} if the results of
169
+a constant folded operation is a denormalized number which should be
172
+The default definition of this macro is false for all modes.
175
+@defmac ZERO_RESULTS_ARE_POSITVE (@var{mode})
176
+If defined, this macro should be true for @var{mode} if the results of a
177
+constant folded operation is negative zero and should be converted to
180
+The default definition of this macro is false for all modes.
183
+@defmac REAL_CONVERT_AS_IEEE (@var{to_mode}, @var{from_mode})
184
+If defined, this macro should be true for @var{to_mode} and
185
+@var{from_mode} if a conversion between the two modes should be done as
186
+if the target format for the modes were IEEE.
188
+The default definition of this macro is false for all modes.
191
+@defmac ROUND_TOWARDS_ZERO (@var{mode})
192
+If defined, this macro should be true for @var{mode} if the rounding
193
+mode should be round towards zero. A true value for @var{mode} has the
198
-@code{MODE_HAS_SIGN_DEPENDENT_ROUNDING} will be false for all modes.
199
+@code{MODE_HAS_SIGN_DEPENDENT_ROUNDING} will be false for
203
@file{libgcc.a}'s floating-point emulator will round towards zero
204
@@ -4174,10 +4207,9 @@
207
@deftypefn {Target Hook} bool TARGET_SCALAR_MODE_SUPPORTED_P (enum machine_mode @var{mode})
208
-Define this to return nonzero if the port is prepared to handle
209
-insns involving scalar mode @var{mode}. For a scalar mode to be
210
-considered supported, all the basic arithmetic and comparisons
212
+Define this to return nonzero if the port is prepared to handle insns
213
+involving scalar mode @var{mode}. For a scalar mode to be considered
214
+supported, all the basic arithmetic and comparisons must work.
216
The default version of this hook returns true for any mode
217
required to handle the basic C types (as defined by the port).
218
@@ -10372,3 +10404,50 @@
219
call stack unwinding. It is used in declarations in @file{unwind-generic.h}
220
and the associated definitions of those functions.
223
+@deftypefn {Target Hook} {enum machine_mode} TARGET_ADDR_SPACE_POINTER_MODE (int @var{address_space})
224
+Define this to return a pointer mode for a given @var{address_space} if
225
+the target supports named address spaces. The default version of this
226
+hook returns @code{ptr_mode} for the generic address space only.
229
+@deftypefn {Target Hook} {const char *} TARGET_ADDR_SPACE_NAME (int @var{address_space})
230
+Define this to return a string that describes the @var{address_space}.
231
+As this hook should never be called for targets that do not support
232
+named address spaces, the default version of this hook will cause the
236
+@deftypefn {Target Hook} {unsigned char} TARGET_ADDR_SPACE_NUMBER (tree @var{address_space})
237
+Define this to return a target-defined address space number for the
238
+given @var{address_space}. As this hook should never be called for
239
+targets that do not support named address spaces, the default version
240
+of this hook will cause the compiler to abort.
243
+@deftypefn {Target Hook} {rtx (*int, int)} TARGET_ADDR_SPACE_CONVERSION_RTL (int @var{from}, int @var{to})
244
+Define this to return a pointer to a function that generates the RTL for
245
+a pointer conversion from the @var{from} address space to the @var{to}
246
+address space. As this hook should never be called for targets that do
247
+not support named address spaces, the default version of this hook will
248
+cause the compiler to abort.
251
+@deftypefn {Target Hook} bool TARGET_VALID_ADDR_SPACE (tree @var{address_space})
252
+Define this to return true if the @var{address_space} is recognized
253
+for the target. The default version of this hook unconditionally
257
+@defmac SPLIT_BEFORE_CSE2
258
+This macro determines whether to use an additional split pass before the
259
+second CSE pass. @code{split0_completed} will be set after this pass is
262
+For example, the Cell SPU target uses this for better optimization of
263
+the multiple instructions required to do simple loads and stores. The
264
+optimizations before this pass work better on simple memory
265
+instructions, and the optimizations right after this pass (e.g., CSE and
266
+combine) are be able to optimize the split instructions.