comparison src/share/vm/utilities/globalDefinitions.hpp @ 14518:d8041d695d19

Merged with jdk9/dev/hotspot changeset 3812c088b945
author twisti
date Tue, 11 Mar 2014 18:45:59 -0700
parents 800057208a2c 8a9bb7821e28
children 24cd779e5d94
comparison
equal deleted inserted replaced
14141:f97c5ec83832 14518:d8041d695d19
36 # include "utilities/globalDefinitions_visCPP.hpp" 36 # include "utilities/globalDefinitions_visCPP.hpp"
37 #endif 37 #endif
38 #ifdef TARGET_COMPILER_sparcWorks 38 #ifdef TARGET_COMPILER_sparcWorks
39 # include "utilities/globalDefinitions_sparcWorks.hpp" 39 # include "utilities/globalDefinitions_sparcWorks.hpp"
40 #endif 40 #endif
41 #ifdef TARGET_COMPILER_xlc
42 # include "utilities/globalDefinitions_xlc.hpp"
43 #endif
41 44
42 #include "utilities/macros.hpp" 45 #include "utilities/macros.hpp"
43 46
44 // This file holds all globally used constants & types, class (forward) 47 // This file holds all globally used constants & types, class (forward)
45 // declarations and a few frequently used utility functions. 48 // declarations and a few frequently used utility functions.
147 const int LogHeapWordsPerLong = LogBytesPerLong - LogHeapWordSize; 150 const int LogHeapWordsPerLong = LogBytesPerLong - LogHeapWordSize;
148 151
149 // The larger HeapWordSize for 64bit requires larger heaps 152 // The larger HeapWordSize for 64bit requires larger heaps
150 // for the same application running in 64bit. See bug 4967770. 153 // for the same application running in 64bit. See bug 4967770.
151 // The minimum alignment to a heap word size is done. Other 154 // The minimum alignment to a heap word size is done. Other
152 // parts of the memory system may required additional alignment 155 // parts of the memory system may require additional alignment
153 // and are responsible for those alignments. 156 // and are responsible for those alignments.
154 #ifdef _LP64 157 #ifdef _LP64
155 #define ScaleForWordSize(x) align_size_down_((x) * 13 / 10, HeapWordSize) 158 #define ScaleForWordSize(x) align_size_down_((x) * 13 / 10, HeapWordSize)
156 #else 159 #else
157 #define ScaleForWordSize(x) (x) 160 #define ScaleForWordSize(x) (x)
391 * the platform specific globalDefinitions (above) 394 * the platform specific globalDefinitions (above)
392 * can set PLATFORM_NATIVE_STACK_WALKING_SUPPORTED to 0 395 * can set PLATFORM_NATIVE_STACK_WALKING_SUPPORTED to 0
393 */ 396 */
394 #ifndef PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 397 #ifndef PLATFORM_NATIVE_STACK_WALKING_SUPPORTED
395 #define PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 1 398 #define PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 1
399 #endif
400
401 // To assure the IRIW property on processors that are not multiple copy
402 // atomic, sync instructions must be issued between volatile reads to
403 // assure their ordering, instead of after volatile stores.
404 // (See "A Tutorial Introduction to the ARM and POWER Relaxed Memory Models"
405 // by Luc Maranget, Susmit Sarkar and Peter Sewell, INRIA/Cambridge)
406 #ifdef CPU_NOT_MULTIPLE_COPY_ATOMIC
407 const bool support_IRIW_for_not_multiple_copy_atomic_cpu = true;
408 #else
409 const bool support_IRIW_for_not_multiple_copy_atomic_cpu = false;
396 #endif 410 #endif
397 411
398 // The byte alignment to be used by Arena::Amalloc. See bugid 4169348. 412 // The byte alignment to be used by Arena::Amalloc. See bugid 4169348.
399 // Note: this value must be a power of 2 413 // Note: this value must be a power of 2
400 414