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