Mercurial > hg > truffle
comparison src/cpu/x86/vm/vm_version_x86.cpp @ 6795:7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
author | roland |
---|---|
date | Thu, 20 Sep 2012 16:49:17 +0200 |
parents | 8ae8f9dd7099 |
children | a3ecd773a7b9 |
comparison
equal
deleted
inserted
replaced
6794:8ae8f9dd7099 | 6795:7eca5de9e0b6 |
---|---|
361 _logical_processors_per_package = logical_processor_count(); | 361 _logical_processors_per_package = logical_processor_count(); |
362 } | 362 } |
363 } | 363 } |
364 | 364 |
365 _supports_cx8 = supports_cmpxchg8(); | 365 _supports_cx8 = supports_cmpxchg8(); |
366 // xchg and xadd instructions | |
367 _supports_atomic_getset4 = true; | |
368 _supports_atomic_getadd4 = true; | |
369 LP64_ONLY(_supports_atomic_getset8 = true); | |
370 LP64_ONLY(_supports_atomic_getadd8 = true); | |
366 | 371 |
367 #ifdef _LP64 | 372 #ifdef _LP64 |
368 // OS should support SSE for x64 and hardware should support at least SSE2. | 373 // OS should support SSE for x64 and hardware should support at least SSE2. |
369 if (!VM_Version::supports_sse2()) { | 374 if (!VM_Version::supports_sse2()) { |
370 vm_exit_during_initialization("Unknown x64 processor: SSE2 not supported"); | 375 vm_exit_during_initialization("Unknown x64 processor: SSE2 not supported"); |