comparison src/share/vm/classfile/javaClasses.cpp @ 3900:a32de5085326

7079673: JSR 292: C1 should inline bytecoded method handle adapters Reviewed-by: never
author twisti
date Thu, 01 Sep 2011 01:31:25 -0700
parents 0b80db433fcb
children c26de9aef2ed
comparison
equal deleted inserted replaced
3899:c124e2e7463e 3900:a32de5085326
26 #include "classfile/javaClasses.hpp" 26 #include "classfile/javaClasses.hpp"
27 #include "classfile/symbolTable.hpp" 27 #include "classfile/symbolTable.hpp"
28 #include "classfile/vmSymbols.hpp" 28 #include "classfile/vmSymbols.hpp"
29 #include "code/debugInfo.hpp" 29 #include "code/debugInfo.hpp"
30 #include "code/pcDesc.hpp" 30 #include "code/pcDesc.hpp"
31 #include "compiler/compilerOracle.hpp"
31 #include "interpreter/interpreter.hpp" 32 #include "interpreter/interpreter.hpp"
32 #include "memory/oopFactory.hpp" 33 #include "memory/oopFactory.hpp"
33 #include "memory/resourceArea.hpp" 34 #include "memory/resourceArea.hpp"
34 #include "memory/universe.inline.hpp" 35 #include "memory/universe.inline.hpp"
35 #include "oops/instanceKlass.hpp" 36 #include "oops/instanceKlass.hpp"
2671 void java_lang_invoke_CallSite::compute_offsets() { 2672 void java_lang_invoke_CallSite::compute_offsets() {
2672 if (!EnableInvokeDynamic) return; 2673 if (!EnableInvokeDynamic) return;
2673 klassOop k = SystemDictionary::CallSite_klass(); 2674 klassOop k = SystemDictionary::CallSite_klass();
2674 if (k != NULL) { 2675 if (k != NULL) {
2675 compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature()); 2676 compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
2677 }
2678
2679 // Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
2680 // (For C2: keep this until we have throttling logic for uncommon traps.)
2681 if (k != NULL) {
2682 instanceKlass* ik = instanceKlass::cast(k);
2683 methodOop m_normal = ik->lookup_method(vmSymbols::setTargetNormal_name(), vmSymbols::setTarget_signature());
2684 methodOop m_volatile = ik->lookup_method(vmSymbols::setTargetVolatile_name(), vmSymbols::setTarget_signature());
2685 guarantee(m_normal && m_volatile, "must exist");
2686 m_normal->set_not_compilable_quietly();
2687 m_volatile->set_not_compilable_quietly();
2676 } 2688 }
2677 } 2689 }
2678 2690
2679 oop java_lang_invoke_CallSite::target(oop site) { 2691 oop java_lang_invoke_CallSite::target(oop site) {
2680 return site->obj_field(_target_offset); 2692 return site->obj_field(_target_offset);