comparison src/share/vm/runtime/thread.cpp @ 22460:f27c163d7dc2

moved JVMCI fields from ThreadShadow to Thread
author Doug Simon <doug.simon@oracle.com>
date Mon, 24 Aug 2015 22:35:47 +0200
parents a1b0a76567c7
children b14500c9da22
comparison
equal deleted inserted replaced
22459:0dd2b79625b3 22460:f27c163d7dc2
841 841
842 void Thread::oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf) { 842 void Thread::oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf) {
843 active_handles()->oops_do(f); 843 active_handles()->oops_do(f);
844 // Do oop for ThreadShadow 844 // Do oop for ThreadShadow
845 f->do_oop((oop*)&_pending_exception); 845 f->do_oop((oop*)&_pending_exception);
846 #if INCLUDE_JVMCI
847 f->do_oop((oop*)&_pending_failed_speculation);
848 #endif
849 handle_area()->oops_do(f); 846 handle_area()->oops_do(f);
850 } 847 }
851 848
852 void Thread::nmethods_do(CodeBlobClosure* cf) { 849 void Thread::nmethods_do(CodeBlobClosure* cf) {
853 // no nmethods in a generic thread... 850 // no nmethods in a generic thread...
1485 _suspend_equivalent = false; 1482 _suspend_equivalent = false;
1486 _in_deopt_handler = 0; 1483 _in_deopt_handler = 0;
1487 _doing_unsafe_access = false; 1484 _doing_unsafe_access = false;
1488 _stack_guard_state = stack_guard_unused; 1485 _stack_guard_state = stack_guard_unused;
1489 #if INCLUDE_JVMCI 1486 #if INCLUDE_JVMCI
1487 _pending_monitorenter = false;
1488 _pending_deoptimization = -1;
1489 _pending_failed_speculation = NULL;
1490 _pending_transfer_to_interpreter = false;
1490 _jvmci_alternate_call_target = NULL; 1491 _jvmci_alternate_call_target = NULL;
1491 _jvmci_implicit_exception_pc = NULL; 1492 _jvmci_implicit_exception_pc = NULL;
1492 if (JVMCICounterSize > 0) { 1493 if (JVMCICounterSize > 0) {
1493 _jvmci_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal); 1494 _jvmci_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal);
1494 memset(_jvmci_counters, 0, sizeof(jlong) * JVMCICounterSize); 1495 memset(_jvmci_counters, 0, sizeof(jlong) * JVMCICounterSize);
2780 // since there may be more than one thread using each ThreadProfiler. 2781 // since there may be more than one thread using each ThreadProfiler.
2781 2782
2782 // Traverse the GCHandles 2783 // Traverse the GCHandles
2783 Thread::oops_do(f, cld_f, cf); 2784 Thread::oops_do(f, cld_f, cf);
2784 2785
2786 JVMCI_ONLY(f->do_oop((oop*)&_pending_failed_speculation);)
2787
2785 assert( (!has_last_Java_frame() && java_call_counter() == 0) || 2788 assert( (!has_last_Java_frame() && java_call_counter() == 0) ||
2786 (has_last_Java_frame() && java_call_counter() > 0), "wrong java_sp info!"); 2789 (has_last_Java_frame() && java_call_counter() > 0), "wrong java_sp info!");
2787 2790
2788 if (has_last_Java_frame()) { 2791 if (has_last_Java_frame()) {
2789 // Record JavaThread to GC thread 2792 // Record JavaThread to GC thread