changeset 6675:b596a1063e90

8044775: Improve usage of umbrella header atomic.inline.hpp. Reviewed-by: stefank, kvn
author goetz
date Wed, 04 Jun 2014 11:56:44 +0200
parents dabee7bb3a8f
children 1e9f18eb3a84
files src/cpu/zero/vm/cppInterpreter_zero.cpp src/os/aix/vm/osThread_aix.cpp src/os/aix/vm/os_aix.cpp src/os/bsd/vm/os_bsd.cpp src/os/linux/vm/os_linux.cpp src/os/solaris/vm/osThread_solaris.cpp src/os/solaris/vm/os_solaris.cpp src/os/solaris/vm/thread_solaris.inline.hpp src/os/windows/vm/osThread_windows.cpp src/os/windows/vm/os_windows.cpp src/os/windows/vm/threadCritical_windows.cpp src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp src/share/vm/asm/assembler.cpp src/share/vm/c1/c1_Runtime1.cpp src/share/vm/classfile/classLoaderData.cpp src/share/vm/classfile/stringTable.cpp src/share/vm/classfile/symbolTable.cpp src/share/vm/code/nmethod.cpp src/share/vm/compiler/compileBroker.cpp src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp src/share/vm/gc_implementation/g1/collectionSetChooser.cpp src/share/vm/gc_implementation/g1/concurrentMark.cpp src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp src/share/vm/gc_implementation/g1/g1HotCardCache.cpp src/share/vm/gc_implementation/g1/g1MarkSweep.cpp src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp src/share/vm/gc_implementation/g1/g1StringDedup.cpp src/share/vm/gc_implementation/g1/g1StringDedup.hpp src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp src/share/vm/gc_implementation/g1/g1StringDedupThread.cpp src/share/vm/gc_implementation/g1/heapRegion.cpp src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp src/share/vm/gc_implementation/g1/sparsePRT.cpp src/share/vm/gc_implementation/parNew/parNewGeneration.cpp src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp src/share/vm/gc_implementation/shared/ageTable.cpp src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp src/share/vm/gc_implementation/shared/mutableSpace.cpp src/share/vm/interpreter/bytecodeInterpreter.cpp src/share/vm/interpreter/interpreterRuntime.cpp src/share/vm/memory/allocation.cpp src/share/vm/memory/cardTableRS.cpp src/share/vm/memory/defNewGeneration.cpp src/share/vm/memory/gcLocker.cpp src/share/vm/memory/gcLocker.hpp src/share/vm/memory/space.cpp src/share/vm/memory/specialized_oop_closures.hpp src/share/vm/memory/threadLocalAllocBuffer.inline.hpp src/share/vm/memory/universe.cpp src/share/vm/oops/compiledICHolder.cpp src/share/vm/oops/compiledICHolder.hpp src/share/vm/oops/cpCache.cpp src/share/vm/oops/instanceKlass.cpp src/share/vm/oops/instanceKlass.hpp src/share/vm/oops/oop.pcgc.inline.hpp src/share/vm/oops/symbol.cpp src/share/vm/opto/matcher.cpp src/share/vm/opto/runtime.cpp src/share/vm/prims/jni.cpp src/share/vm/prims/jvm.cpp src/share/vm/prims/jvmtiImpl.cpp src/share/vm/prims/jvmtiRawMonitor.cpp src/share/vm/prims/unsafe.cpp src/share/vm/runtime/biasedLocking.cpp src/share/vm/runtime/extendedPC.hpp src/share/vm/runtime/frame.cpp src/share/vm/runtime/handles.cpp src/share/vm/runtime/interfaceSupport.cpp src/share/vm/runtime/mutex.cpp src/share/vm/runtime/objectMonitor.cpp src/share/vm/runtime/os.cpp src/share/vm/runtime/os.hpp src/share/vm/runtime/safepoint.cpp src/share/vm/runtime/sharedRuntime.cpp src/share/vm/runtime/sweeper.cpp src/share/vm/runtime/synchronizer.cpp src/share/vm/runtime/thread.cpp src/share/vm/runtime/thread.hpp src/share/vm/runtime/thread.inline.hpp src/share/vm/services/memPtr.cpp src/share/vm/services/memPtr.hpp src/share/vm/services/memRecorder.cpp src/share/vm/services/memTracker.cpp src/share/vm/services/threadService.cpp src/share/vm/shark/sharkRuntime.cpp src/share/vm/utilities/accessFlags.cpp src/share/vm/utilities/bitMap.cpp src/share/vm/utilities/bitMap.inline.hpp src/share/vm/utilities/debug.cpp src/share/vm/utilities/histogram.cpp src/share/vm/utilities/taskqueue.cpp src/share/vm/utilities/vmError.cpp src/share/vm/utilities/workgroup.cpp
diffstat 97 files changed, 218 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -37,6 +37,7 @@
 #include "prims/jvmtiExport.hpp"
 #include "prims/jvmtiThreadState.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/aix/vm/osThread_aix.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/aix/vm/osThread_aix.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,17 +24,13 @@
  */
 
 // no precompiled headers
-#include "runtime/atomic.hpp"
+
 #include "runtime/handles.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/os.hpp"
 #include "runtime/osThread.hpp"
 #include "runtime/safepoint.hpp"
 #include "runtime/vmThread.hpp"
-#ifdef TARGET_ARCH_ppc
-# include "assembler_ppc.inline.hpp"
-#endif
-
 
 void OSThread::pd_initialize() {
   assert(this != NULL, "check");
--- a/src/os/aix/vm/os_aix.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/aix/vm/os_aix.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -48,6 +48,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/bsd/vm/os_bsd.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/bsd/vm/os_bsd.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -41,6 +41,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/linux/vm/os_linux.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/linux/vm/os_linux.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -41,6 +41,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/solaris/vm/osThread_solaris.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/solaris/vm/osThread_solaris.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -23,7 +23,6 @@
  */
 
 // no precompiled headers
-#include "runtime/atomic.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/os.hpp"
--- a/src/os/solaris/vm/os_solaris.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/solaris/vm/os_solaris.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -41,6 +41,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/solaris/vm/thread_solaris.inline.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/solaris/vm/thread_solaris.inline.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -29,7 +29,6 @@
 #error "This file should only be included from thread.inline.hpp"
 #endif
 
-#include "runtime/atomic.inline.hpp"
 #include "runtime/thread.hpp"
 #include "runtime/threadLocalStorage.hpp"
 
--- a/src/os/windows/vm/osThread_windows.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/windows/vm/osThread_windows.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -23,7 +23,6 @@
  */
 
 // no precompiled headers
-#include "runtime/atomic.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/os.hpp"
--- a/src/os/windows/vm/os_windows.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/windows/vm/os_windows.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -44,6 +44,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/os/windows/vm/threadCritical_windows.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os/windows/vm/threadCritical_windows.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/thread.inline.hpp"
 #include "runtime/threadCritical.hpp"
 
--- a/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -38,6 +38,7 @@
 #include "prims/jvm.h"
 #include "prims/jvm_misc.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/share/vm/asm/assembler.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/asm/assembler.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,7 +26,6 @@
 #include "asm/macroAssembler.hpp"
 #include "asm/macroAssembler.inline.hpp"
 #include "asm/codeBuffer.hpp"
-#include "runtime/atomic.hpp"
 #include "runtime/atomic.inline.hpp"
 #include "runtime/icache.hpp"
 #include "runtime/os.hpp"
--- a/src/share/vm/c1/c1_Runtime1.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/c1/c1_Runtime1.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -47,6 +47,7 @@
 #include "memory/resourceArea.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/share/vm/classfile/classLoaderData.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/classfile/classLoaderData.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -57,6 +57,7 @@
 #include "memory/metadataFactory.hpp"
 #include "memory/metaspaceShared.hpp"
 #include "memory/oopFactory.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/jniHandles.hpp"
 #include "runtime/mutex.hpp"
 #include "runtime/safepoint.hpp"
--- a/src/share/vm/classfile/stringTable.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/classfile/stringTable.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -33,6 +33,7 @@
 #include "memory/gcLocker.inline.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.inline2.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "utilities/hashtable.inline.hpp"
 #if INCLUDE_ALL_GCS
--- a/src/share/vm/classfile/symbolTable.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/classfile/symbolTable.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -33,6 +33,7 @@
 #include "memory/gcLocker.inline.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.inline2.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "utilities/hashtable.inline.hpp"
 
--- a/src/share/vm/code/nmethod.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/code/nmethod.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -37,6 +37,7 @@
 #include "oops/methodData.hpp"
 #include "prims/jvmtiRedefineClassesTrace.hpp"
 #include "prims/jvmtiImpl.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/sharedRuntime.hpp"
 #include "runtime/sweeper.hpp"
--- a/src/share/vm/compiler/compileBroker.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/compiler/compileBroker.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -36,6 +36,7 @@
 #include "oops/oop.inline.hpp"
 #include "prims/nativeLookup.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/init.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -56,6 +56,7 @@
 #include "memory/tenuredGeneration.hpp"
 #include "oops/oop.inline.hpp"
 #include "prims/jvmtiExport.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/globals_extension.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/java.hpp"
--- a/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "gc_implementation/g1/g1CollectorPolicy.hpp"
 #include "gc_implementation/g1/g1ErgoVerbose.hpp"
 #include "memory/space.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 
 // Even though we don't use the GC efficiency in our heuristics as
 // much as we used to, we still order according to GC efficiency. This
--- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -45,6 +45,7 @@
 #include "oops/oop.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/java.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/prefetch.inline.hpp"
 #include "services/memTracker.hpp"
 
--- a/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,7 +26,7 @@
 #include "gc_implementation/g1/dirtyCardQueue.hpp"
 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
 #include "gc_implementation/g1/heapRegionRemSet.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/safepoint.hpp"
 #include "runtime/thread.inline.hpp"
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -62,6 +62,7 @@
 #include "memory/referenceProcessor.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.pcgc.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/prefetch.inline.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/vmThread.hpp"
--- a/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "gc_implementation/g1/g1GCPhaseTimes.hpp"
 #include "gc_implementation/g1/g1Log.hpp"
 #include "gc_implementation/g1/g1StringDedup.hpp"
+#include "runtime/atomic.inline.hpp"
 
 // Helper class for avoiding interleaved logging
 class LineBuffer: public StackObj {
--- a/src/share/vm/gc_implementation/g1/g1HotCardCache.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1HotCardCache.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,7 +28,7 @@
 #include "gc_implementation/g1/g1HotCardCache.hpp"
 #include "gc_implementation/g1/g1RemSet.hpp"
 #include "gc_implementation/g1/heapRegion.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 
 G1HotCardCache::G1HotCardCache(G1CollectedHeap *g1h):
   _g1h(g1h), _hot_cache(NULL), _use_cache(false), _card_counts(g1h) {}
--- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -44,6 +44,7 @@
 #include "oops/instanceRefKlass.hpp"
 #include "oops/oop.inline.hpp"
 #include "prims/jvmtiExport.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/fprofiler.hpp"
 #include "runtime/synchronizer.hpp"
--- a/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
 #include "gc_implementation/g1/heapRegion.hpp"
 #include "gc_implementation/g1/satbQueue.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/thread.inline.hpp"
--- a/src/share/vm/gc_implementation/g1/g1StringDedup.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1StringDedup.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -31,6 +31,7 @@
 #include "gc_implementation/g1/g1StringDedupStat.hpp"
 #include "gc_implementation/g1/g1StringDedupTable.hpp"
 #include "gc_implementation/g1/g1StringDedupThread.hpp"
+#include "runtime/atomic.inline.hpp"
 
 bool G1StringDedup::_enabled = false;
 
@@ -211,3 +212,16 @@
     G1StringDedupTable::finish_rehash(_rehashed_table);
   }
 }
+
+// Atomically claims the next available queue for exclusive access by
+// the current thread. Returns the queue number of the claimed queue.
+size_t G1StringDedupUnlinkOrOopsDoClosure::claim_queue() {
+  return (size_t)Atomic::add_ptr(1, &_next_queue) - 1;
+}
+
+// Atomically claims the next available table partition for exclusive
+// access by the current thread. Returns the table bucket number where
+// the claimed partition starts.
+size_t G1StringDedupUnlinkOrOopsDoClosure::claim_table_partition(size_t partition_size) {
+  return (size_t)Atomic::add_ptr(partition_size, &_next_bucket) - partition_size;
+}
--- a/src/share/vm/gc_implementation/g1/g1StringDedup.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1StringDedup.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -84,6 +84,7 @@
 
 #include "memory/allocation.hpp"
 #include "oops/oop.hpp"
+#include "runtime/atomic.hpp"
 
 class OopClosure;
 class BoolObjectClosure;
@@ -174,16 +175,12 @@
 
   // Atomically claims the next available queue for exclusive access by
   // the current thread. Returns the queue number of the claimed queue.
-  size_t claim_queue() {
-    return (size_t)Atomic::add_ptr(1, &_next_queue) - 1;
-  }
+  size_t claim_queue();
 
   // Atomically claims the next available table partition for exclusive
   // access by the current thread. Returns the table bucket number where
   // the claimed partition starts.
-  size_t claim_table_partition(size_t partition_size) {
-    return (size_t)Atomic::add_ptr(partition_size, &_next_bucket) - partition_size;
-  }
+  size_t claim_table_partition(size_t partition_size);
 
   // Applies and returns the result from the is_alive closure, or
   // returns true if no such closure was provided.
--- a/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #include "classfile/javaClasses.hpp"
 #include "gc_implementation/g1/g1StringDedupQueue.hpp"
 #include "memory/gcLocker.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "utilities/stack.inline.hpp"
 
--- a/src/share/vm/gc_implementation/g1/g1StringDedupThread.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/g1StringDedupThread.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "gc_implementation/g1/g1StringDedupTable.hpp"
 #include "gc_implementation/g1/g1StringDedupThread.hpp"
 #include "gc_implementation/g1/g1StringDedupQueue.hpp"
+#include "runtime/atomic.inline.hpp"
 
 G1StringDedupThread* G1StringDedupThread::_thread = NULL;
 
--- a/src/share/vm/gc_implementation/g1/heapRegion.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/heapRegion.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -34,6 +34,7 @@
 #include "memory/iterator.hpp"
 #include "memory/space.inline.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/orderAccess.inline.hpp"
 
 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
--- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -32,6 +32,7 @@
 #include "memory/padded.inline.hpp"
 #include "memory/space.inline.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/bitMap.inline.hpp"
 #include "utilities/globalDefinitions.hpp"
 #include "utilities/growableArray.hpp"
--- a/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -29,6 +29,7 @@
 #include "memory/allocation.inline.hpp"
 #include "memory/cardTableModRefBS.hpp"
 #include "memory/space.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutexLocker.hpp"
 
 #define SPARSE_PRT_VERBOSE 0
--- a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -47,6 +47,7 @@
 #include "oops/objArrayOop.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.pcgc.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/handles.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/java.hpp"
--- a/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #include "gc_implementation/parallelScavenge/parMarkBitMap.hpp"
 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/os.hpp"
 #include "utilities/bitMap.inline.hpp"
 #include "services/memTracker.hpp"
--- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -34,6 +34,7 @@
 #include "oops/objArrayKlass.inline.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.pcgc.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/stack.inline.hpp"
 
 PSOldGen*            ParCompactionManager::_old_gen = NULL;
--- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -51,6 +51,7 @@
 #include "oops/methodData.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/oop.pcgc.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/fprofiler.hpp"
 #include "runtime/safepoint.hpp"
 #include "runtime/vmThread.hpp"
--- a/src/share/vm/gc_implementation/shared/ageTable.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/shared/ageTable.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "memory/collectorPolicy.hpp"
 #include "memory/resourceArea.hpp"
 #include "memory/sharedHeap.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/copy.hpp"
 
 /* Copyright (c) 1992-2009 Oracle and/or its affiliates, and Stanford University.
--- a/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "gc_implementation/shared/spaceDecorator.hpp"
 #include "memory/sharedHeap.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/thread.inline.hpp"
 
 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
--- a/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/gc_implementation/shared/mutableSpace.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/macros.hpp"
 #if INCLUDE_ALL_GCS
 #include "gc_implementation/shared/mutableSpace.hpp"
--- a/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -37,6 +37,7 @@
 #include "oops/oop.inline.hpp"
 #include "prims/jvmtiExport.hpp"
 #include "prims/jvmtiThreadState.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/handles.inline.hpp"
--- a/src/share/vm/interpreter/interpreterRuntime.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/interpreter/interpreterRuntime.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -42,6 +42,7 @@
 #include "oops/symbol.hpp"
 #include "prims/jvmtiExport.hpp"
 #include "prims/nativeLookup.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/deoptimization.hpp"
--- a/src/share/vm/memory/allocation.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/allocation.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -29,7 +29,7 @@
 #include "memory/metaspaceShared.hpp"
 #include "memory/resourceArea.hpp"
 #include "memory/universe.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/os.hpp"
 #include "runtime/task.hpp"
 #include "runtime/threadCritical.hpp"
--- a/src/share/vm/memory/cardTableRS.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/cardTableRS.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -29,6 +29,7 @@
 #include "memory/generation.hpp"
 #include "memory/space.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/java.hpp"
 #include "runtime/os.hpp"
 #include "utilities/macros.hpp"
--- a/src/share/vm/memory/defNewGeneration.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/defNewGeneration.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -41,6 +41,7 @@
 #include "memory/space.inline.hpp"
 #include "oops/instanceRefKlass.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/java.hpp"
 #include "runtime/prefetch.inline.hpp"
 #include "runtime/thread.inline.hpp"
--- a/src/share/vm/memory/gcLocker.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/gcLocker.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #include "memory/gcLocker.inline.hpp"
 #include "memory/resourceArea.hpp"
 #include "memory/sharedHeap.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/thread.inline.hpp"
 
 volatile jint GC_locker::_jni_lock_count = 0;
@@ -59,6 +60,17 @@
     assert(_jni_lock_count == count, "must be equal");
   }
 }
+
+// In debug mode track the locking state at all times
+void GC_locker::increment_debug_jni_lock_count() {
+  assert(_debug_jni_lock_count >= 0, "bad value");
+  Atomic::inc(&_debug_jni_lock_count);
+}
+
+void GC_locker::decrement_debug_jni_lock_count() {
+  assert(_debug_jni_lock_count > 0, "bad value");
+  Atomic::dec(&_debug_jni_lock_count);
+}
 #endif
 
 bool GC_locker::check_active_before_gc() {
--- a/src/share/vm/memory/gcLocker.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/gcLocker.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -94,18 +94,8 @@
   }
 
   // In debug mode track the locking state at all times
-  static void increment_debug_jni_lock_count() {
-#ifdef ASSERT
-    assert(_debug_jni_lock_count >= 0, "bad value");
-    Atomic::inc(&_debug_jni_lock_count);
-#endif
-  }
-  static void decrement_debug_jni_lock_count() {
-#ifdef ASSERT
-    assert(_debug_jni_lock_count > 0, "bad value");
-    Atomic::dec(&_debug_jni_lock_count);
-#endif
-  }
+  static void increment_debug_jni_lock_count() NOT_DEBUG_RETURN;
+  static void decrement_debug_jni_lock_count() NOT_DEBUG_RETURN;
 
   // Set the current lock count
   static void set_jni_lock_count(int count) {
--- a/src/share/vm/memory/space.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/space.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -37,6 +37,7 @@
 #include "oops/oop.inline.hpp"
 #include "oops/oop.inline2.hpp"
 #include "runtime/java.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/prefetch.inline.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/safepoint.hpp"
--- a/src/share/vm/memory/specialized_oop_closures.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/specialized_oop_closures.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,7 +25,6 @@
 #ifndef SHARE_VM_MEMORY_SPECIALIZED_OOP_CLOSURES_HPP
 #define SHARE_VM_MEMORY_SPECIALIZED_OOP_CLOSURES_HPP
 
-#include "runtime/atomic.hpp"
 #include "utilities/macros.hpp"
 #if INCLUDE_ALL_GCS
 #include "gc_implementation/g1/g1_specialized_oop_closures.hpp"
--- a/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/threadLocalAllocBuffer.inline.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,7 +27,6 @@
 
 #include "gc_interface/collectedHeap.hpp"
 #include "memory/threadLocalAllocBuffer.hpp"
-#include "runtime/atomic.hpp"
 #include "runtime/thread.hpp"
 #include "utilities/copy.hpp"
 
--- a/src/share/vm/memory/universe.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/memory/universe.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -53,6 +53,7 @@
 #include "oops/typeArrayKlass.hpp"
 #include "prims/jvmtiRedefineClassesTrace.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/fprofiler.hpp"
 #include "runtime/handles.inline.hpp"
--- a/src/share/vm/oops/compiledICHolder.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/compiledICHolder.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,11 +27,27 @@
 #include "oops/klass.hpp"
 #include "oops/method.hpp"
 #include "oops/oop.inline2.hpp"
+#include "runtime/atomic.inline.hpp"
 
 volatile int CompiledICHolder::_live_count;
 volatile int CompiledICHolder::_live_not_claimed_count;
 
 
+CompiledICHolder::CompiledICHolder(Method* method, Klass* klass)
+  : _holder_method(method), _holder_klass(klass) {
+#ifdef ASSERT
+  Atomic::inc(&_live_count);
+  Atomic::inc(&_live_not_claimed_count);
+#endif // ASSERT
+}
+
+#ifdef ASSERT
+CompiledICHolder::~CompiledICHolder() {
+  assert(_live_count > 0, "underflow");
+  Atomic::dec(&_live_count);
+}
+#endif // ASSERT
+
 // Printing
 
 void CompiledICHolder::print_on(outputStream* st) const {
@@ -51,3 +67,11 @@
   guarantee(holder_method()->is_method(), "should be method");
   guarantee(holder_klass()->is_klass(),   "should be klass");
 }
+
+#ifdef ASSERT
+
+void CompiledICHolder::claim() {
+  Atomic::dec(&_live_not_claimed_count);
+}
+
+#endif // ASSERT
--- a/src/share/vm/oops/compiledICHolder.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/compiledICHolder.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #define SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP
 
 #include "oops/oop.hpp"
+#include "utilities/macros.hpp"
 
 // A CompiledICHolder* is a helper object for the inline cache implementation.
 // It holds an intermediate value (method+klass pair) used when converting from
@@ -50,20 +51,8 @@
 
  public:
   // Constructor
-  CompiledICHolder(Method* method, Klass* klass)
-      : _holder_method(method), _holder_klass(klass) {
-#ifdef ASSERT
-    Atomic::inc(&_live_count);
-    Atomic::inc(&_live_not_claimed_count);
-#endif
-  }
-
-  ~CompiledICHolder() {
-#ifdef ASSERT
-    assert(_live_count > 0, "underflow");
-    Atomic::dec(&_live_count);
-#endif
-  }
+  CompiledICHolder(Method* method, Klass* klass);
+  ~CompiledICHolder() NOT_DEBUG_RETURN;
 
   static int live_count() { return _live_count; }
   static int live_not_claimed_count() { return _live_not_claimed_count; }
@@ -91,11 +80,7 @@
 
   const char* internal_name() const { return "{compiledICHolder}"; }
 
-  void claim() {
-#ifdef ASSERT
-    Atomic::dec(&_live_not_claimed_count);
-#endif
-  }
+  void claim() NOT_DEBUG_RETURN;
 };
 
 #endif // SHARE_VM_OOPS_COMPILEDICHOLDEROOP_HPP
--- a/src/share/vm/oops/cpCache.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/cpCache.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -32,6 +32,7 @@
 #include "oops/oop.inline.hpp"
 #include "prims/jvmtiRedefineClassesTrace.hpp"
 #include "prims/methodHandles.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "utilities/macros.hpp"
--- a/src/share/vm/oops/instanceKlass.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/instanceKlass.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -51,6 +51,7 @@
 #include "prims/jvmtiRedefineClasses.hpp"
 #include "prims/jvmtiThreadState.hpp"
 #include "prims/methodComparator.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/fieldDescriptor.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/javaCalls.hpp"
--- a/src/share/vm/oops/instanceKlass.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/instanceKlass.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -32,7 +32,6 @@
 #include "oops/fieldInfo.hpp"
 #include "oops/instanceOop.hpp"
 #include "oops/klassVtable.hpp"
-#include "runtime/atomic.hpp"
 #include "runtime/handles.hpp"
 #include "runtime/os.hpp"
 #include "utilities/accessFlags.hpp"
--- a/src/share/vm/oops/oop.pcgc.inline.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/oop.pcgc.inline.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #define SHARE_VM_OOPS_OOP_PCGC_INLINE_HPP
 
 #include "utilities/macros.hpp"
+#include "runtime/atomic.inline.hpp"
 #if INCLUDE_ALL_GCS
 #include "gc_implementation/parNew/parNewGeneration.hpp"
 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
--- a/src/share/vm/oops/symbol.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/oops/symbol.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,11 +26,11 @@
 #include "precompiled.hpp"
 #include "classfile/altHashing.hpp"
 #include "classfile/classLoaderData.hpp"
+#include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
 #include "oops/symbol.hpp"
 #include "runtime/atomic.inline.hpp"
 #include "runtime/os.hpp"
-#include "memory/allocation.inline.hpp"
-#include "memory/resourceArea.hpp"
 
 Symbol::Symbol(const u1* name, int length, int refcount) {
   _refcount = refcount;
--- a/src/share/vm/opto/matcher.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/opto/matcher.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -36,7 +36,6 @@
 #include "opto/runtime.hpp"
 #include "opto/type.hpp"
 #include "opto/vectornode.hpp"
-#include "runtime/atomic.hpp"
 #include "runtime/os.hpp"
 #ifdef TARGET_ARCH_MODEL_x86_32
 # include "adfiles/ad_x86_32.hpp"
--- a/src/share/vm/opto/runtime.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/opto/runtime.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -55,6 +55,7 @@
 #include "opto/mulnode.hpp"
 #include "opto/runtime.hpp"
 #include "opto/subnode.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/fprofiler.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/share/vm/prims/jni.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/prims/jni.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -59,6 +59,7 @@
 #include "prims/jvm_misc.hpp"
 #include "prims/jvmtiExport.hpp"
 #include "prims/jvmtiThreadState.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/fieldDescriptor.hpp"
 #include "runtime/fprofiler.hpp"
--- a/src/share/vm/prims/jvm.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/prims/jvm.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -44,6 +44,7 @@
 #include "prims/nativeLookup.hpp"
 #include "prims/privilegedStack.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/dtraceJSDT.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/init.hpp"
@@ -55,6 +56,7 @@
 #include "runtime/os.hpp"
 #include "runtime/perfData.hpp"
 #include "runtime/reflection.hpp"
+#include "runtime/thread.inline.hpp"
 #include "runtime/vframe.hpp"
 #include "runtime/vm_operations.hpp"
 #include "services/attachListener.hpp"
--- a/src/share/vm/prims/jvmtiImpl.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/prims/jvmtiImpl.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -32,7 +32,7 @@
 #include "prims/jvmtiEventController.inline.hpp"
 #include "prims/jvmtiImpl.hpp"
 #include "prims/jvmtiRedefineClasses.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/handles.hpp"
 #include "runtime/handles.inline.hpp"
--- a/src/share/vm/prims/jvmtiRawMonitor.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/prims/jvmtiRawMonitor.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "prims/jvmtiRawMonitor.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/thread.inline.hpp"
--- a/src/share/vm/prims/unsafe.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/prims/unsafe.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -31,6 +31,7 @@
 #include "memory/allocation.inline.hpp"
 #include "prims/jni.h"
 #include "prims/jvm.h"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/prefetch.inline.hpp"
--- a/src/share/vm/runtime/biasedLocking.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/biasedLocking.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "oops/klass.inline.hpp"
 #include "oops/markOop.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/basicLock.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/task.hpp"
--- a/src/share/vm/runtime/extendedPC.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/extendedPC.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,6 +25,9 @@
 #ifndef SHARE_VM_RUNTIME_EXTENDEDPC_HPP
 #define SHARE_VM_RUNTIME_EXTENDEDPC_HPP
 
+#include "memory/allocation.hpp"
+#include "utilities/globalDefinitions.hpp"
+
 // An ExtendedPC contains the _pc from a signal handler in a platform
 // independent way.
 
--- a/src/share/vm/runtime/frame.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/frame.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -44,6 +44,7 @@
 #include "runtime/signature.hpp"
 #include "runtime/stubCodeGenerator.hpp"
 #include "runtime/stubRoutines.hpp"
+#include "runtime/thread.inline.hpp"
 #include "utilities/decoder.hpp"
 
 #ifdef TARGET_ARCH_x86
--- a/src/share/vm/runtime/handles.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/handles.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,6 +26,7 @@
 #include "memory/allocation.inline.hpp"
 #include "oops/constantPool.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/thread.inline.hpp"
 #ifdef TARGET_OS_FAMILY_linux
--- a/src/share/vm/runtime/interfaceSupport.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/interfaceSupport.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -28,6 +28,7 @@
 #include "gc_interface/collectedHeap.inline.hpp"
 #include "memory/genCollectedHeap.hpp"
 #include "memory/resourceArea.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/init.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/orderAccess.inline.hpp"
--- a/src/share/vm/runtime/mutex.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/mutex.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
  */
 
 #include "precompiled.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/mutex.hpp"
 #include "runtime/orderAccess.inline.hpp"
 #include "runtime/osThread.hpp"
--- a/src/share/vm/runtime/objectMonitor.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/objectMonitor.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,6 +27,7 @@
 #include "memory/resourceArea.hpp"
 #include "oops/markOop.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/mutexLocker.hpp"
--- a/src/share/vm/runtime/os.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/os.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -40,6 +40,7 @@
 #include "prims/jvm_misc.hpp"
 #include "prims/privilegedStack.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/java.hpp"
--- a/src/share/vm/runtime/os.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/os.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,7 +26,6 @@
 #define SHARE_VM_RUNTIME_OS_HPP
 
 #include "jvmtifiles/jvmti.h"
-#include "runtime/atomic.hpp"
 #include "runtime/extendedPC.hpp"
 #include "runtime/handles.hpp"
 #include "utilities/top.hpp"
--- a/src/share/vm/runtime/safepoint.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/safepoint.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -32,10 +32,12 @@
 #include "code/scopeDesc.hpp"
 #include "gc_interface/collectedHeap.hpp"
 #include "interpreter/interpreter.hpp"
+#include "memory/gcLocker.inline.hpp"
 #include "memory/resourceArea.hpp"
 #include "memory/universe.inline.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/symbol.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/frame.inline.hpp"
--- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -42,6 +42,7 @@
 #include "prims/jvmtiRedefineClassesTrace.hpp"
 #include "prims/methodHandles.hpp"
 #include "prims/nativeLookup.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/arguments.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/handles.inline.hpp"
--- a/src/share/vm/runtime/sweeper.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/sweeper.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -30,7 +30,7 @@
 #include "compiler/compileBroker.hpp"
 #include "memory/resourceArea.hpp"
 #include "oops/method.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/compilationPolicy.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/orderAccess.inline.hpp"
--- a/src/share/vm/runtime/synchronizer.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/synchronizer.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,6 +27,7 @@
 #include "memory/resourceArea.hpp"
 #include "oops/markOop.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
--- a/src/share/vm/runtime/thread.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/thread.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -46,6 +46,7 @@
 #include "prims/jvmtiThreadState.hpp"
 #include "prims/privilegedStack.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/fprofiler.hpp"
--- a/src/share/vm/runtime/thread.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/thread.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -343,42 +343,16 @@
 
   bool has_async_exception() const { return (_suspend_flags & _has_async_exception) != 0; }
 
-  void set_suspend_flag(SuspendFlags f) {
-    assert(sizeof(jint) == sizeof(_suspend_flags), "size mismatch");
-    uint32_t flags;
-    do {
-      flags = _suspend_flags;
-    }
-    while (Atomic::cmpxchg((jint)(flags | f),
-                           (volatile jint*)&_suspend_flags,
-                           (jint)flags) != (jint)flags);
-  }
-  void clear_suspend_flag(SuspendFlags f) {
-    assert(sizeof(jint) == sizeof(_suspend_flags), "size mismatch");
-    uint32_t flags;
-    do {
-      flags = _suspend_flags;
-    }
-    while (Atomic::cmpxchg((jint)(flags & ~f),
-                           (volatile jint*)&_suspend_flags,
-                           (jint)flags) != (jint)flags);
-  }
+  inline void set_suspend_flag(SuspendFlags f);
+  inline void clear_suspend_flag(SuspendFlags f);
 
-  void set_has_async_exception() {
-    set_suspend_flag(_has_async_exception);
-  }
-  void clear_has_async_exception() {
-    clear_suspend_flag(_has_async_exception);
-  }
+  inline void set_has_async_exception();
+  inline void clear_has_async_exception();
 
   bool do_critical_native_unlock() const { return (_suspend_flags & _critical_native_unlock) != 0; }
 
-  void set_critical_native_unlock() {
-    set_suspend_flag(_critical_native_unlock);
-  }
-  void clear_critical_native_unlock() {
-    clear_suspend_flag(_critical_native_unlock);
-  }
+  inline void set_critical_native_unlock();
+  inline void clear_critical_native_unlock();
 
   // Support for Unhandled Oop detection
 #ifdef CHECK_UNHANDLED_OOPS
@@ -1074,8 +1048,8 @@
 
   // Suspend/resume support for JavaThread
  private:
-  void set_ext_suspended()       { set_suspend_flag (_ext_suspended);  }
-  void clear_ext_suspended()     { clear_suspend_flag(_ext_suspended); }
+  inline void set_ext_suspended();
+  inline void clear_ext_suspended();
 
  public:
   void java_suspend();
@@ -1123,11 +1097,11 @@
   // via the appropriate -XX options.
   bool wait_for_ext_suspend_completion(int count, int delay, uint32_t *bits);
 
-  void set_external_suspend()     { set_suspend_flag  (_external_suspend); }
-  void clear_external_suspend()   { clear_suspend_flag(_external_suspend); }
+  inline void set_external_suspend();
+  inline void clear_external_suspend();
 
-  void set_deopt_suspend()        { set_suspend_flag  (_deopt_suspend); }
-  void clear_deopt_suspend()      { clear_suspend_flag(_deopt_suspend); }
+  inline void set_deopt_suspend();
+  inline void clear_deopt_suspend();
   bool is_deopt_suspend()         { return (_suspend_flags & _deopt_suspend) != 0; }
 
   bool is_external_suspend() const {
@@ -1215,11 +1189,7 @@
 
   void set_pending_unsafe_access_error()          { _special_runtime_exit_condition = _async_unsafe_access_error; }
 
-  void set_pending_async_exception(oop e) {
-    _pending_async_exception = e;
-    _special_runtime_exit_condition = _async_exception;
-    set_has_async_exception();
-  }
+  inline void set_pending_async_exception(oop e);
 
   // Fast-locking support
   bool is_lock_owned(address adr) const;
--- a/src/share/vm/runtime/thread.inline.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/runtime/thread.inline.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,6 +27,7 @@
 
 #define SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
 
+#include "runtime/atomic.inline.hpp"
 #include "runtime/thread.hpp"
 #ifdef TARGET_OS_FAMILY_linux
 # include "thread_linux.inline.hpp"
@@ -46,6 +47,40 @@
 
 #undef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
 
+inline void Thread::set_suspend_flag(SuspendFlags f) {
+  assert(sizeof(jint) == sizeof(_suspend_flags), "size mismatch");
+  uint32_t flags;
+  do {
+    flags = _suspend_flags;
+  }
+  while (Atomic::cmpxchg((jint)(flags | f),
+                         (volatile jint*)&_suspend_flags,
+                         (jint)flags) != (jint)flags);
+}
+inline void Thread::clear_suspend_flag(SuspendFlags f) {
+  assert(sizeof(jint) == sizeof(_suspend_flags), "size mismatch");
+  uint32_t flags;
+  do {
+    flags = _suspend_flags;
+  }
+  while (Atomic::cmpxchg((jint)(flags & ~f),
+                         (volatile jint*)&_suspend_flags,
+                         (jint)flags) != (jint)flags);
+}
+
+inline void Thread::set_has_async_exception() {
+  set_suspend_flag(_has_async_exception);
+}
+inline void Thread::clear_has_async_exception() {
+  clear_suspend_flag(_has_async_exception);
+}
+inline void Thread::set_critical_native_unlock() {
+  set_suspend_flag(_critical_native_unlock);
+}
+inline void Thread::clear_critical_native_unlock() {
+  clear_suspend_flag(_critical_native_unlock);
+}
+
 inline jlong Thread::cooked_allocated_bytes() {
   jlong allocated_bytes = OrderAccess::load_acquire(&_allocated_bytes);
   if (UseTLAB) {
@@ -59,6 +94,33 @@
   return allocated_bytes;
 }
 
+inline void JavaThread::set_ext_suspended() {
+  set_suspend_flag (_ext_suspended);
+}
+inline void JavaThread::clear_ext_suspended() {
+  clear_suspend_flag(_ext_suspended);
+}
+
+inline void JavaThread::set_external_suspend() {
+  set_suspend_flag(_external_suspend);
+}
+inline void JavaThread::clear_external_suspend() {
+  clear_suspend_flag(_external_suspend);
+}
+
+inline void JavaThread::set_deopt_suspend() {
+  set_suspend_flag(_deopt_suspend);
+}
+inline void JavaThread::clear_deopt_suspend() {
+  clear_suspend_flag(_deopt_suspend);
+}
+
+inline void JavaThread::set_pending_async_exception(oop e) {
+  _pending_async_exception = e;
+  _special_runtime_exit_condition = _async_exception;
+  set_has_async_exception();
+}
+
 #ifdef PPC64
 inline JavaThreadState JavaThread::thread_state() const    {
   return (JavaThreadState) OrderAccess::load_acquire((volatile jint*)&_thread_state);
--- a/src/share/vm/services/memPtr.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/services/memPtr.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "services/memPtr.hpp"
 #include "services/memTracker.hpp"
 
--- a/src/share/vm/services/memPtr.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/services/memPtr.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -26,7 +26,6 @@
 #define SHARE_VM_SERVICES_MEM_PTR_HPP
 
 #include "memory/allocation.hpp"
-#include "runtime/atomic.hpp"
 #include "runtime/os.hpp"
 #include "runtime/safepoint.hpp"
 
--- a/src/share/vm/services/memRecorder.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/services/memRecorder.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,7 +24,7 @@
 
 #include "precompiled.hpp"
 
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "services/memBaseline.hpp"
 #include "services/memRecorder.hpp"
 #include "services/memPtr.hpp"
--- a/src/share/vm/services/memTracker.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/services/memTracker.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,7 +24,7 @@
 #include "precompiled.hpp"
 
 #include "oops/instanceKlass.hpp"
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/interfaceSupport.hpp"
 #include "runtime/mutexLocker.hpp"
 #include "runtime/safepoint.hpp"
--- a/src/share/vm/services/threadService.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/services/threadService.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -29,6 +29,7 @@
 #include "memory/oopFactory.hpp"
 #include "oops/instanceKlass.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "runtime/init.hpp"
 #include "runtime/thread.hpp"
--- a/src/share/vm/shark/sharkRuntime.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/shark/sharkRuntime.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
  */
 
 #include "precompiled.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/biasedLocking.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/thread.hpp"
--- a/src/share/vm/utilities/accessFlags.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/accessFlags.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/accessFlags.hpp"
 #ifdef TARGET_OS_FAMILY_linux
 # include "os_linux.inline.hpp"
--- a/src/share/vm/utilities/bitMap.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/bitMap.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "memory/allocation.inline.hpp"
 #include "memory/resourceArea.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/bitMap.inline.hpp"
 #include "utilities/copy.hpp"
 #ifdef TARGET_OS_FAMILY_linux
--- a/src/share/vm/utilities/bitMap.inline.hpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/bitMap.inline.hpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,7 +25,7 @@
 #ifndef SHARE_VM_UTILITIES_BITMAP_INLINE_HPP
 #define SHARE_VM_UTILITIES_BITMAP_INLINE_HPP
 
-#include "runtime/atomic.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/bitMap.hpp"
 
 #ifdef ASSERT
--- a/src/share/vm/utilities/debug.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/debug.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -39,6 +39,7 @@
 #include "oops/oop.inline.hpp"
 #include "prims/privilegedStack.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/frame.hpp"
 #include "runtime/java.hpp"
 #include "runtime/sharedRuntime.hpp"
--- a/src/share/vm/utilities/histogram.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/histogram.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "utilities/histogram.hpp"
 
 #ifdef ASSERT
--- a/src/share/vm/utilities/taskqueue.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/taskqueue.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "oops/oop.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/os.hpp"
 #include "runtime/thread.inline.hpp"
 #include "utilities/debug.hpp"
--- a/src/share/vm/utilities/vmError.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/vmError.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -27,6 +27,7 @@
 #include "gc_interface/collectedHeap.hpp"
 #include "prims/whitebox.hpp"
 #include "runtime/arguments.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/frame.inline.hpp"
 #include "runtime/init.hpp"
 #include "runtime/os.hpp"
--- a/src/share/vm/utilities/workgroup.cpp	Thu Jun 19 13:31:14 2014 +0200
+++ b/src/share/vm/utilities/workgroup.cpp	Wed Jun 04 11:56:44 2014 +0200
@@ -25,6 +25,7 @@
 #include "precompiled.hpp"
 #include "memory/allocation.hpp"
 #include "memory/allocation.inline.hpp"
+#include "runtime/atomic.inline.hpp"
 #include "runtime/os.hpp"
 #include "utilities/workgroup.hpp"