~ubuntu-branches/debian/sid/gcc-4.8/sid

« back to all changes in this revision

Viewing changes to .svn/pristine/45/45c8384fc595283605d4a2f76de0e731f8a6e13c.svn-base

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-12-19 19:48:34 UTC
  • Revision ID: package-import@ubuntu.com-20141219194834-4dz1q7rrn5pad823
Tags: 4.8.4-1
* GCC 4.8.4 release.
  - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
    PR sanitizer/64265 (wrong code).
* Require recent binutils to pass go test failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: Implements D CPU version conditions.
 
2
 
 
3
This implements the following versions:
 
4
* D_HardFloat
 
5
* D_SoftFloat
 
6
 
 
7
for all supported architectures. And these where appropriate:
 
8
* ARM
 
9
** ARM_Thumb
 
10
** ARM_HardFloat
 
11
** ARM_SoftFloat
 
12
** ARM_SoftFP
 
13
* AArch64
 
14
* Alpha
 
15
** Alpha_SoftFloat
 
16
** Alpha_HardFloat
 
17
* X86
 
18
* X86_64
 
19
** D_X32
 
20
* IA64
 
21
* MIPS32
 
22
* MIPS64
 
23
** MIPS_O32
 
24
** MIPS_O64
 
25
** MIPS_N32
 
26
** MIPS_N64
 
27
** MIPS_EABI
 
28
** MIPS_HardFloat
 
29
** MIPS_SoftFloat
 
30
* HPPA
 
31
* HPPA64
 
32
* PPC
 
33
* PPC64
 
34
** PPC_HardFloat
 
35
** PPC_SoftFloat
 
36
* S390
 
37
* S390X
 
38
* SH
 
39
* SH64
 
40
* SPARC
 
41
* SPARC64
 
42
* SPARC_V8Plus
 
43
** SPARC_HardFloat
 
44
** SPARC_SoftFloat
 
45
 
 
46
--- a/src/gcc/config/aarch64/aarch64.h
 
47
+++ b/src/gcc/config/aarch64/aarch64.h
 
48
@@ -51,6 +51,14 @@
 
49
                                                        \
 
50
     } while (0)
 
51
 
 
52
+/* Target CPU builtins for D.  */
 
53
+#define TARGET_CPU_D_BUILTINS()                                \
 
54
+  do                                                   \
 
55
+    {                                                  \
 
56
+      builtin_define ("AArch64");                      \
 
57
+      builtin_define ("D_HardFloat");                  \
 
58
+    } while (0)
 
59
+
 
60
 
 
61
 
 
62
 /* Target machine storage layout.  */
 
63
--- a/src/gcc/config/alpha/alpha.h
 
64
+++ b/src/gcc/config/alpha/alpha.h
 
65
@@ -72,6 +72,23 @@ along with GCC; see the file COPYING3.
 
66
        SUBTARGET_LANGUAGE_CPP_BUILTINS();              \
 
67
 } while (0)
 
68
 
 
69
+/* Target CPU builtins for D.  */
 
70
+#define TARGET_CPU_D_BUILTINS()                                \
 
71
+  do                                                   \
 
72
+    {                                                  \
 
73
+       builtin_define ("Alpha");                       \
 
74
+       if (TARGET_SOFT_FP)                             \
 
75
+         {                                             \
 
76
+           builtin_define ("D_SoftFloat");             \
 
77
+           builtin_define ("Alpha_SoftFloat");         \
 
78
+         }                                             \
 
79
+       else                                            \
 
80
+         {                                             \
 
81
+           builtin_define ("D_HardFloat");             \
 
82
+           builtin_define ("Alpha_HardFloat");         \
 
83
+         }                                             \
 
84
+} while (0)
 
85
+
 
86
 #ifndef SUBTARGET_LANGUAGE_CPP_BUILTINS
 
87
 #define SUBTARGET_LANGUAGE_CPP_BUILTINS()              \
 
88
   do                                                   \
 
89
--- a/src/gcc/config/arm/arm.h
 
90
+++ b/src/gcc/config/arm/arm.h
 
91
@@ -158,6 +158,31 @@ extern char arm_arch_name[];
 
92
          builtin_define ("__ARM_ARCH_EXT_IDIV__");     \
 
93
     } while (0)
 
94
 
 
95
+/* Target CPU builtins for D.  */
 
96
+#define TARGET_CPU_D_BUILTINS()                                \
 
97
+  do                                                   \
 
98
+    {                                                  \
 
99
+       builtin_define ("ARM");                         \
 
100
+                                                       \
 
101
+       if (TARGET_THUMB || TARGET_THUMB2)              \
 
102
+         builtin_define ("ARM_Thumb");                 \
 
103
+                                                       \
 
104
+       if (TARGET_HARD_FLOAT_ABI)                      \
 
105
+         builtin_define ("ARM_HardFloat");             \
 
106
+       else                                            \
 
107
+         {                                             \
 
108
+           if(TARGET_SOFT_FLOAT)                       \
 
109
+             builtin_define ("ARM_SoftFloat");         \
 
110
+           else if(TARGET_HARD_FLOAT)                  \
 
111
+             builtin_define ("ARM_SoftFP");            \
 
112
+         }                                             \
 
113
+                                                       \
 
114
+       if(TARGET_SOFT_FLOAT)                           \
 
115
+         builtin_define ("D_SoftFloat");               \
 
116
+       else if(TARGET_HARD_FLOAT)                      \
 
117
+         builtin_define ("D_HardFloat");               \
 
118
+    } while (0)
 
119
+
 
120
 #include "config/arm/arm-opts.h"
 
121
 
 
122
 enum target_cpus
 
123
--- a/src/gcc/config/i386/i386.h
 
124
+++ b/src/gcc/config/i386/i386.h
 
125
@@ -588,6 +588,24 @@ extern const char *host_detect_local_cpu
 
126
 /* Target CPU builtins.  */
 
127
 #define TARGET_CPU_CPP_BUILTINS() ix86_target_macros ()
 
128
 
 
129
+/* Target CPU builtins for D.  */
 
130
+#define TARGET_CPU_D_BUILTINS()                        \
 
131
+  do {                                         \
 
132
+    if (TARGET_64BIT)                          \
 
133
+    {                                          \
 
134
+      builtin_define("X86_64");                        \
 
135
+      if (TARGET_X32)                          \
 
136
+        builtin_define("D_X32");               \
 
137
+    }                                          \
 
138
+    else                                       \
 
139
+      builtin_define("X86");                   \
 
140
+                                               \
 
141
+    if (TARGET_80387)                          \
 
142
+      builtin_define("D_HardFloat");           \
 
143
+    else                                       \
 
144
+      builtin_define("D_SoftFloat");           \
 
145
+  } while (0)
 
146
+
 
147
 /* Target Pragmas.  */
 
148
 #define REGISTER_TARGET_PRAGMAS() ix86_register_pragmas ()
 
149
 
 
150
--- a/src/gcc/config/ia64/ia64.h
 
151
+++ b/src/gcc/config/ia64/ia64.h
 
152
@@ -40,6 +40,13 @@ do {                                         \
 
153
          builtin_define("__BIG_ENDIAN__");     \
 
154
 } while (0)
 
155
 
 
156
+/* Target CPU builtins for D.  */
 
157
+#define TARGET_CPU_D_BUILTINS()                        \
 
158
+do {                                           \
 
159
+       builtin_define ("IA64");                \
 
160
+       builtin_define ("D_HardFloat");         \
 
161
+} while (0)
 
162
+
 
163
 #ifndef SUBTARGET_EXTRA_SPECS
 
164
 #define SUBTARGET_EXTRA_SPECS
 
165
 #endif
 
166
--- a/src/gcc/config/mips/mips.h
 
167
+++ b/src/gcc/config/mips/mips.h
 
168
@@ -551,6 +551,54 @@ struct mips_cpu_info {
 
169
     }                                                                  \
 
170
   while (0)
 
171
 
 
172
+/* Target CPU builtins for D.  */
 
173
+#define TARGET_CPU_D_BUILTINS()                                                \
 
174
+  do                                                                   \
 
175
+  {                                                                    \
 
176
+    if (TARGET_64BIT)                                                  \
 
177
+      builtin_define("MIPS64");                                                \
 
178
+    else                                                               \
 
179
+      builtin_define("MIPS32");                                                \
 
180
+                                                                       \
 
181
+    switch (mips_abi)                                                  \
 
182
+    {                                                                  \
 
183
+      case ABI_32:                                                     \
 
184
+       builtin_define("MIPS_O32");                                     \
 
185
+       break;                                                          \
 
186
+                                                                       \
 
187
+      case ABI_O64:                                                    \
 
188
+       builtin_define("MIPS_O64");                                     \
 
189
+       break;                                                          \
 
190
+                                                                       \
 
191
+      case ABI_N32:                                                    \
 
192
+       builtin_define("MIPS_N32");                                     \
 
193
+       break;                                                          \
 
194
+                                                                       \
 
195
+      case ABI_64:                                                     \
 
196
+       builtin_define("MIPS_N64");                                     \
 
197
+       break;                                                          \
 
198
+                                                                       \
 
199
+      case ABI_EABI:                                                   \
 
200
+       builtin_define("MIPS_EABI");                                    \
 
201
+       break;                                                          \
 
202
+                                                                       \
 
203
+      default:                                                         \
 
204
+       gcc_unreachable();                                              \
 
205
+    }                                                                  \
 
206
+                                                                       \
 
207
+    if (TARGET_HARD_FLOAT_ABI)                                         \
 
208
+    {                                                                  \
 
209
+      builtin_define("MIPS_HardFloat");                                        \
 
210
+      builtin_define("D_HardFloat");                                   \
 
211
+    }                                                                  \
 
212
+    else if (TARGET_SOFT_FLOAT_ABI)                                    \
 
213
+    {                                                                  \
 
214
+      builtin_define("MIPS_SoftFloat");                                        \
 
215
+      builtin_define("D_SoftFloat");                                   \
 
216
+    }                                                                  \
 
217
+  }                                                                    \
 
218
+  while (0)
 
219
+
 
220
 /* Default target_flags if no switches are specified  */
 
221
 
 
222
 #ifndef TARGET_DEFAULT
 
223
--- a/src/gcc/config/pa/pa.h
 
224
+++ b/src/gcc/config/pa/pa.h
 
225
@@ -185,6 +185,20 @@ do {                                                               \
 
226
        builtin_define("_PA_RISC1_0");                          \
 
227
 } while (0)
 
228
 
 
229
+/* Target CPU builtins for D.  */
 
230
+#define TARGET_CPU_D_BUILTINS()                                        \
 
231
+do {                                                           \
 
232
+     if(TARGET_64BIT)                                          \
 
233
+       builtin_define("HPPA64");                               \
 
234
+     else                                                      \
 
235
+       builtin_define("HPPA");                                 \
 
236
+                                                               \
 
237
+     if(TARGET_SOFT_FLOAT)                                     \
 
238
+       builtin_define ("D_SoftFloat");                         \
 
239
+     else                                                      \
 
240
+       builtin_define ("D_HardFloat");                         \
 
241
+} while (0)
 
242
+
 
243
 /* An old set of OS defines for various BSD-like systems.  */
 
244
 #define TARGET_OS_CPP_BUILTINS()                               \
 
245
   do                                                           \
 
246
--- a/src/gcc/config/rs6000/rs6000.h
 
247
+++ b/src/gcc/config/rs6000/rs6000.h
 
248
@@ -613,6 +613,28 @@ extern unsigned char rs6000_recip_bits[]
 
249
 #define TARGET_CPU_CPP_BUILTINS() \
 
250
   rs6000_cpu_cpp_builtins (pfile)
 
251
 
 
252
+/* Target CPU builtins for D.  */
 
253
+#define TARGET_CPU_D_BUILTINS()                        \
 
254
+  do                                           \
 
255
+    {                                          \
 
256
+      if (TARGET_64BIT)                                \
 
257
+       builtin_define ("PPC64");               \
 
258
+      else                                     \
 
259
+       builtin_define ("PPC");                 \
 
260
+                                               \
 
261
+      if (TARGET_HARD_FLOAT)                   \
 
262
+       {                                       \
 
263
+         builtin_define ("PPC_HardFloat");     \
 
264
+         builtin_define ("D_HardFloat");       \
 
265
+       }                                       \
 
266
+      else if (TARGET_SOFT_FLOAT)              \
 
267
+       {                                       \
 
268
+         builtin_define ("PPC_SoftFloat");     \
 
269
+         builtin_define ("D_SoftFloat");       \
 
270
+       }                                       \
 
271
+    }                                          \
 
272
+  while (0)
 
273
+
 
274
 /* This is used by rs6000_cpu_cpp_builtins to indicate the byte order
 
275
    we're compiling for.  Some configurations may need to override it.  */
 
276
 #define RS6000_CPU_CPP_ENDIAN_BUILTINS()       \
 
277
--- a/src/gcc/config/s390/s390.h
 
278
+++ b/src/gcc/config/s390/s390.h
 
279
@@ -108,6 +108,22 @@ enum processor_flags
 
280
     }                                                  \
 
281
   while (0)
 
282
 
 
283
+/* Target CPU builtins for D.  */
 
284
+#define TARGET_CPU_D_BUILTINS()                                \
 
285
+  do                                                   \
 
286
+    {                                                  \
 
287
+      if (TARGET_64BIT)                                        \
 
288
+        builtin_define ("S390X");                      \
 
289
+      else                                             \
 
290
+        builtin_define ("S390");                       \
 
291
+                                                       \
 
292
+      if(TARGET_SOFT_FLOAT)                            \
 
293
+        builtin_define ("D_SoftFloat");                        \
 
294
+      else if(TARGET_HARD_FLOAT)                       \
 
295
+        builtin_define ("D_HardFloat");                        \
 
296
+    }                                                  \
 
297
+  while (0)
 
298
+
 
299
 #ifdef DEFAULT_TARGET_64BIT
 
300
 #define TARGET_DEFAULT             (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP)
 
301
 #else
 
302
--- a/src/gcc/config/sh/sh.h
 
303
+++ b/src/gcc/config/sh/sh.h
 
304
@@ -31,6 +31,22 @@ extern int code_for_indirect_jump_scratc
 
305
 
 
306
 #define TARGET_CPU_CPP_BUILTINS() sh_cpu_cpp_builtins (pfile)
 
307
 
 
308
+/* Target CPU builtins for D.  */
 
309
+#define TARGET_CPU_D_BUILTINS()                        \
 
310
+  do                                           \
 
311
+    {                                          \
 
312
+      if (TARGET_SHMEDIA64)                    \
 
313
+       builtin_define ("SH64");                \
 
314
+      else                                     \
 
315
+       builtin_define ("SH");                  \
 
316
+                                               \
 
317
+      if (TARGET_FPU_ANY)                      \
 
318
+       builtin_define ("D_HardFloat");         \
 
319
+      else                                     \
 
320
+       builtin_define ("D_SoftFloat");         \
 
321
+    }                                          \
 
322
+  while (0)
 
323
+
 
324
 /* Value should be nonzero if functions must have frame pointers.
 
325
    Zero means the frame pointer need not be set up (and parms may be accessed
 
326
    via the stack pointer) in functions that seem suitable.  */
 
327
--- a/src/gcc/config/sparc/sparc.h
 
328
+++ b/src/gcc/config/sparc/sparc.h
 
329
@@ -27,6 +27,31 @@ along with GCC; see the file COPYING3.
 
330
 
 
331
 #define TARGET_CPU_CPP_BUILTINS() sparc_target_macros ()
 
332
 
 
333
+/* Target CPU builtins for D.  */
 
334
+#define TARGET_CPU_D_BUILTINS()                        \
 
335
+do                                             \
 
336
+    {                                          \
 
337
+      if (TARGET_64BIT)                                \
 
338
+       builtin_define ("SPARC64");             \
 
339
+      else                                     \
 
340
+       builtin_define ("SPARC");               \
 
341
+                                               \
 
342
+      if(TARGET_V8PLUS)                                \
 
343
+       builtin_define ("SPARC_V8Plus");        \
 
344
+                                               \
 
345
+      if(TARGET_FPU)                           \
 
346
+       {                                       \
 
347
+         builtin_define ("D_HardFloat");       \
 
348
+         builtin_define ("SPARC_HardFloat");   \
 
349
+       }                                       \
 
350
+      else                                     \
 
351
+       {                                       \
 
352
+         builtin_define ("D_SoftFloat");       \
 
353
+         builtin_define ("SPARC_SoftFloat");   \
 
354
+       }                                       \
 
355
+    }                                          \
 
356
+  while (0)
 
357
+
 
358
 /* Specify this in a cover file to provide bi-architecture (32/64) support.  */
 
359
 /* #define SPARC_BI_ARCH */
 
360