| 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 |