Mercurial > hg > truffle
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); |