src/hotspot/share/prims/methodHandles.cpp
changeset 55479 80b27dc96ca3
parent 55005 9b70ebd131b4
child 58177 4932dce35882
equal deleted inserted replaced
55478:ae2e53e379cb 55479:80b27dc96ca3
    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"
       
    46 #include "runtime/fieldDescriptor.inline.hpp"
    45 #include "runtime/fieldDescriptor.inline.hpp"
    47 #include "runtime/handles.inline.hpp"
    46 #include "runtime/handles.inline.hpp"
    48 #include "runtime/interfaceSupport.inline.hpp"
    47 #include "runtime/interfaceSupport.inline.hpp"
    49 #include "runtime/javaCalls.hpp"
    48 #include "runtime/javaCalls.hpp"
    50 #include "runtime/jniHandles.inline.hpp"
    49 #include "runtime/jniHandles.inline.hpp"
  1108     DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context);
  1107     DependencyContext deps = java_lang_invoke_MethodHandleNatives_CallSiteContext::vmdependencies(context);
  1109     marked = deps.mark_dependent_nmethods(changes);
  1108     marked = deps.mark_dependent_nmethods(changes);
  1110   }
  1109   }
  1111   if (marked > 0) {
  1110   if (marked > 0) {
  1112     // At least one nmethod has been marked for deoptimization.
  1111     // At least one nmethod has been marked for deoptimization.
  1113     Deoptimization::deoptimize_all_marked();
  1112     VM_Deoptimize op;
       
  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       Deoptimization::deoptimize_all_marked();
  1509       VM_Deoptimize op;
       
  1510       VMThread::execute(&op);
  1510     }
  1511     }
  1511   }
  1512   }
  1512 }
  1513 }
  1513 JVM_END
  1514 JVM_END
  1514 
  1515