src/hotspot/share/prims/methodHandles.cpp
changeset 58226 408c445d04e8
parent 58177 4932dce35882
child 58273 08a5148e7c4e
equal deleted inserted replaced
58225:4eebb9aadbe3 58226:408c445d04e8
    40 #include "oops/objArrayOop.inline.hpp"
    40 #include "oops/objArrayOop.inline.hpp"
    41 #include "oops/oop.inline.hpp"
    41 #include "oops/oop.inline.hpp"
    42 #include "oops/typeArrayOop.inline.hpp"
    42 #include "oops/typeArrayOop.inline.hpp"
    43 #include "prims/methodHandles.hpp"
    43 #include "prims/methodHandles.hpp"
    44 #include "runtime/compilationPolicy.hpp"
    44 #include "runtime/compilationPolicy.hpp"
       
    45 #include "runtime/deoptimization.hpp"
    45 #include "runtime/fieldDescriptor.inline.hpp"
    46 #include "runtime/fieldDescriptor.inline.hpp"
    46 #include "runtime/handles.inline.hpp"
    47 #include "runtime/handles.inline.hpp"
    47 #include "runtime/interfaceSupport.inline.hpp"
    48 #include "runtime/interfaceSupport.inline.hpp"
    48 #include "runtime/javaCalls.hpp"
    49 #include "runtime/javaCalls.hpp"
    49 #include "runtime/jniHandles.inline.hpp"
    50 #include "runtime/jniHandles.inline.hpp"
  1107     DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context);
  1108     DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context);
  1108     marked = deps.mark_dependent_nmethods(changes);
  1109     marked = deps.mark_dependent_nmethods(changes);
  1109   }
  1110   }
  1110   if (marked > 0) {
  1111   if (marked > 0) {
  1111     // At least one nmethod has been marked for deoptimization.
  1112     // At least one nmethod has been marked for deoptimization.
  1112     VM_Deoptimize op;
  1113     Deoptimization::deoptimize_all_marked();
  1113     VMThread::execute(&op);
       
  1114   }
  1114   }
  1115 }
  1115 }
  1116 
  1116 
  1117 void MethodHandles::trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) {
  1117 void MethodHandles::trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) {
  1118   if (TraceMethodHandles) {
  1118   if (TraceMethodHandles) {
  1504       DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context());
  1504       DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context());
  1505       marked = deps.remove_all_dependents();
  1505       marked = deps.remove_all_dependents();
  1506     }
  1506     }
  1507     if (marked > 0) {
  1507     if (marked > 0) {
  1508       // At least one nmethod has been marked for deoptimization
  1508       // At least one nmethod has been marked for deoptimization
  1509       VM_Deoptimize op;
  1509       Deoptimization::deoptimize_all_marked();
  1510       VMThread::execute(&op);
       
  1511     }
  1510     }
  1512   }
  1511   }
  1513 }
  1512 }
  1514 JVM_END
  1513 JVM_END
  1515 
  1514