894 }
895
896 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
897 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
898 while( !box_node->is_BoxLock() ) box_node = box_node->in(1);
899 monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated()));
900 }
901
902 // We dump the object pool first, since deoptimization reads it in first.
903 debug_info()->dump_object_pool(objs);
904
905 // Build first class objects to pass to scope
906 DebugToken *locvals = debug_info()->create_scope_values(locarray);
907 DebugToken *expvals = debug_info()->create_scope_values(exparray);
908 DebugToken *monvals = debug_info()->create_monitor_values(monarray);
909
910 // Make method available for all Safepoints
911 ciMethod* scope_method = method ? method : _method;
912 // Describe the scope here
913 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
914 assert(!jvms->should_reexecute() || depth==max_depth, "reexecute allowed only for the youngest");
915 // Now we can describe the scope.
916 debug_info()->describe_scope(safepoint_pc_offset,scope_method,jvms->bci(),jvms->should_reexecute(),locvals,expvals,monvals);
917 } // End jvms loop
918
919 // Mark the end of the scope set.
920 debug_info()->end_safepoint(safepoint_pc_offset);
921 }
922
923
924
925 // A simplified version of Process_OopMap_Node, to handle non-safepoints.
926 class NonSafepointEmitter {
927 Compile* C;
928 JVMState* _pending_jvms;
929 int _pending_offset;
930
931 void emit_non_safepoint();
932
933 public:
934 NonSafepointEmitter(Compile* compile) {
935 this->C = compile;
936 _pending_jvms = NULL;
|
894 }
895
896 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
897 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
898 while( !box_node->is_BoxLock() ) box_node = box_node->in(1);
899 monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated()));
900 }
901
902 // We dump the object pool first, since deoptimization reads it in first.
903 debug_info()->dump_object_pool(objs);
904
905 // Build first class objects to pass to scope
906 DebugToken *locvals = debug_info()->create_scope_values(locarray);
907 DebugToken *expvals = debug_info()->create_scope_values(exparray);
908 DebugToken *monvals = debug_info()->create_monitor_values(monarray);
909
910 // Make method available for all Safepoints
911 ciMethod* scope_method = method ? method : _method;
912 // Describe the scope here
913 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
914 assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
915 // Now we can describe the scope.
916 bool is_method_handle_invoke = false;
917 debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, locvals, expvals, monvals);
918 } // End jvms loop
919
920 // Mark the end of the scope set.
921 debug_info()->end_safepoint(safepoint_pc_offset);
922 }
923
924
925
926 // A simplified version of Process_OopMap_Node, to handle non-safepoints.
927 class NonSafepointEmitter {
928 Compile* C;
929 JVMState* _pending_jvms;
930 int _pending_offset;
931
932 void emit_non_safepoint();
933
934 public:
935 NonSafepointEmitter(Compile* compile) {
936 this->C = compile;
937 _pending_jvms = NULL;
|