< prev index next >

src/hotspot/share/runtime/sharedRuntime.cpp

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "jvm.h"
  27 #include "aot/aotLoader.hpp"
  28 #include "code/compiledMethod.inline.hpp"
  29 #include "classfile/stringTable.hpp"
  30 #include "classfile/systemDictionary.hpp"
  31 #include "classfile/vmSymbols.hpp"
  32 #include "code/codeCache.hpp"
  33 #include "code/compiledIC.hpp"
  34 #include "code/scopeDesc.hpp"
  35 #include "code/vtableStubs.hpp"
  36 #include "compiler/abstractCompiler.hpp"
  37 #include "compiler/compileBroker.hpp"
  38 #include "compiler/disassembler.hpp"

  39 #include "gc/shared/gcLocker.inline.hpp"
  40 #include "interpreter/interpreter.hpp"
  41 #include "interpreter/interpreterRuntime.hpp"
  42 #include "logging/log.hpp"
  43 #include "memory/metaspaceShared.hpp"
  44 #include "memory/resourceArea.hpp"
  45 #include "memory/universe.hpp"
  46 #include "oops/klass.hpp"
  47 #include "oops/method.inline.hpp"
  48 #include "oops/objArrayKlass.hpp"
  49 #include "oops/oop.inline.hpp"
  50 #include "prims/forte.hpp"
  51 #include "prims/jvmtiExport.hpp"
  52 #include "prims/methodHandles.hpp"
  53 #include "prims/nativeLookup.hpp"
  54 #include "runtime/arguments.hpp"
  55 #include "runtime/atomic.hpp"
  56 #include "runtime/biasedLocking.hpp"
  57 #include "runtime/compilationPolicy.hpp"
  58 #include "runtime/frame.inline.hpp"


3132       }
3133     }
3134     if (fr.is_first_java_frame()) {
3135       break;
3136     } else {
3137       fr = fr.java_sender();
3138     }
3139   }
3140   return activation;
3141 }
3142 
3143 void SharedRuntime::on_slowpath_allocation_exit(JavaThread* thread) {
3144   // After any safepoint, just before going back to compiled code,
3145   // we inform the GC that we will be doing initializing writes to
3146   // this object in the future without emitting card-marks, so
3147   // GC may take any compensating steps.
3148 
3149   oop new_obj = thread->vm_result();
3150   if (new_obj == NULL) return;
3151 
3152   BarrierSet *bs = Universe::heap()->barrier_set();
3153   bs->on_slowpath_allocation_exit(thread, new_obj);
3154 }


  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "jvm.h"
  27 #include "aot/aotLoader.hpp"
  28 #include "code/compiledMethod.inline.hpp"
  29 #include "classfile/stringTable.hpp"
  30 #include "classfile/systemDictionary.hpp"
  31 #include "classfile/vmSymbols.hpp"
  32 #include "code/codeCache.hpp"
  33 #include "code/compiledIC.hpp"
  34 #include "code/scopeDesc.hpp"
  35 #include "code/vtableStubs.hpp"
  36 #include "compiler/abstractCompiler.hpp"
  37 #include "compiler/compileBroker.hpp"
  38 #include "compiler/disassembler.hpp"
  39 #include "gc/shared/barrierSet.hpp"
  40 #include "gc/shared/gcLocker.inline.hpp"
  41 #include "interpreter/interpreter.hpp"
  42 #include "interpreter/interpreterRuntime.hpp"
  43 #include "logging/log.hpp"
  44 #include "memory/metaspaceShared.hpp"
  45 #include "memory/resourceArea.hpp"
  46 #include "memory/universe.hpp"
  47 #include "oops/klass.hpp"
  48 #include "oops/method.inline.hpp"
  49 #include "oops/objArrayKlass.hpp"
  50 #include "oops/oop.inline.hpp"
  51 #include "prims/forte.hpp"
  52 #include "prims/jvmtiExport.hpp"
  53 #include "prims/methodHandles.hpp"
  54 #include "prims/nativeLookup.hpp"
  55 #include "runtime/arguments.hpp"
  56 #include "runtime/atomic.hpp"
  57 #include "runtime/biasedLocking.hpp"
  58 #include "runtime/compilationPolicy.hpp"
  59 #include "runtime/frame.inline.hpp"


3133       }
3134     }
3135     if (fr.is_first_java_frame()) {
3136       break;
3137     } else {
3138       fr = fr.java_sender();
3139     }
3140   }
3141   return activation;
3142 }
3143 
3144 void SharedRuntime::on_slowpath_allocation_exit(JavaThread* thread) {
3145   // After any safepoint, just before going back to compiled code,
3146   // we inform the GC that we will be doing initializing writes to
3147   // this object in the future without emitting card-marks, so
3148   // GC may take any compensating steps.
3149 
3150   oop new_obj = thread->vm_result();
3151   if (new_obj == NULL) return;
3152 
3153   BarrierSet *bs = BarrierSet::barrier_set();
3154   bs->on_slowpath_allocation_exit(thread, new_obj);
3155 }
< prev index next >