OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8CONFIG_H_ | 5 #ifndef V8CONFIG_H_ |
6 #define V8CONFIG_H_ | 6 #define V8CONFIG_H_ |
7 | 7 |
8 // Platform headers for feature detection below. | 8 // Platform headers for feature detection below. |
9 #if defined(__ANDROID__) | 9 #if defined(__ANDROID__) |
10 # include <sys/cdefs.h> | 10 # include <sys/cdefs.h> |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 // V8_HAS_BUILTIN_CLZ - __builtin_clz() supported | 178 // V8_HAS_BUILTIN_CLZ - __builtin_clz() supported |
179 // V8_HAS_BUILTIN_CTZ - __builtin_ctz() supported | 179 // V8_HAS_BUILTIN_CTZ - __builtin_ctz() supported |
180 // V8_HAS_BUILTIN_EXPECT - __builtin_expect() supported | 180 // V8_HAS_BUILTIN_EXPECT - __builtin_expect() supported |
181 // V8_HAS_BUILTIN_FRAME_ADDRESS - __builtin_frame_address() supported | 181 // V8_HAS_BUILTIN_FRAME_ADDRESS - __builtin_frame_address() supported |
182 // V8_HAS_BUILTIN_POPCOUNT - __builtin_popcount() supported | 182 // V8_HAS_BUILTIN_POPCOUNT - __builtin_popcount() supported |
183 // V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported | 183 // V8_HAS_BUILTIN_SADD_OVERFLOW - __builtin_sadd_overflow() supported |
184 // V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported | 184 // V8_HAS_BUILTIN_SSUB_OVERFLOW - __builtin_ssub_overflow() supported |
185 // V8_HAS_DECLSPEC_ALIGN - __declspec(align(n)) supported | 185 // V8_HAS_DECLSPEC_ALIGN - __declspec(align(n)) supported |
186 // V8_HAS_DECLSPEC_DEPRECATED - __declspec(deprecated) supported | 186 // V8_HAS_DECLSPEC_DEPRECATED - __declspec(deprecated) supported |
187 // V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported | 187 // V8_HAS_DECLSPEC_NOINLINE - __declspec(noinline) supported |
| 188 // V8_HAS_DECLSPEC_SELECTANY - __declspec(selectany) supported |
188 // V8_HAS___FINAL - __final supported in non-C++11 mode | 189 // V8_HAS___FINAL - __final supported in non-C++11 mode |
189 // V8_HAS___FORCEINLINE - __forceinline supported | 190 // V8_HAS___FORCEINLINE - __forceinline supported |
190 // | 191 // |
191 // Note that testing for compilers and/or features must be done using #if | 192 // Note that testing for compilers and/or features must be done using #if |
192 // not #ifdef. For example, to test for Intel C++ Compiler, use: | 193 // not #ifdef. For example, to test for Intel C++ Compiler, use: |
193 // #if V8_CC_INTEL | 194 // #if V8_CC_INTEL |
194 // ... | 195 // ... |
195 // #endif | 196 // #endif |
196 | 197 |
197 #if defined(__clang__) | 198 #if defined(__clang__) |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 # define V8_CC_MSVC 1 | 283 # define V8_CC_MSVC 1 |
283 | 284 |
284 # define V8_HAS___ALIGNOF 1 | 285 # define V8_HAS___ALIGNOF 1 |
285 | 286 |
286 # define V8_HAS_CXX11_FINAL 1 | 287 # define V8_HAS_CXX11_FINAL 1 |
287 # define V8_HAS_CXX11_OVERRIDE 1 | 288 # define V8_HAS_CXX11_OVERRIDE 1 |
288 | 289 |
289 # define V8_HAS_DECLSPEC_ALIGN 1 | 290 # define V8_HAS_DECLSPEC_ALIGN 1 |
290 # define V8_HAS_DECLSPEC_DEPRECATED 1 | 291 # define V8_HAS_DECLSPEC_DEPRECATED 1 |
291 # define V8_HAS_DECLSPEC_NOINLINE 1 | 292 # define V8_HAS_DECLSPEC_NOINLINE 1 |
| 293 # define V8_HAS_DECLSPEC_SELECTANY 1 |
292 | 294 |
293 # define V8_HAS___FORCEINLINE 1 | 295 # define V8_HAS___FORCEINLINE 1 |
294 | 296 |
295 #endif | 297 #endif |
296 | 298 |
297 | 299 |
298 // ----------------------------------------------------------------------------- | 300 // ----------------------------------------------------------------------------- |
299 // Helper macros | 301 // Helper macros |
300 | 302 |
301 // A macro used to make better inlining. Don't bother for debug builds. | 303 // A macro used to make better inlining. Don't bother for debug builds. |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 # define V8_ALIGNOF(type) __alignof__(type) | 415 # define V8_ALIGNOF(type) __alignof__(type) |
414 #else | 416 #else |
415 // Note that alignment of a type within a struct can be less than the | 417 // Note that alignment of a type within a struct can be less than the |
416 // alignment of the type stand-alone (because of ancient ABIs), so this | 418 // alignment of the type stand-alone (because of ancient ABIs), so this |
417 // should only be used as a last resort. | 419 // should only be used as a last resort. |
418 namespace v8 { template <typename T> class AlignOfHelper { char c; T t; }; } | 420 namespace v8 { template <typename T> class AlignOfHelper { char c; T t; }; } |
419 # define V8_ALIGNOF(type) (sizeof(::v8::AlignOfHelper<type>) - sizeof(type)) | 421 # define V8_ALIGNOF(type) (sizeof(::v8::AlignOfHelper<type>) - sizeof(type)) |
420 #endif | 422 #endif |
421 | 423 |
422 #endif // V8CONFIG_H_ | 424 #endif // V8CONFIG_H_ |
OLD | NEW |