mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
7079673: JSR 292: C1 should inline bytecoded method handle adapters
Reviewed-by: never
This commit is contained in:
parent
fa7c124af1
commit
fcc2a86582
9 changed files with 241 additions and 78 deletions
|
@ -28,6 +28,7 @@
|
|||
#include "classfile/vmSymbols.hpp"
|
||||
#include "code/debugInfo.hpp"
|
||||
#include "code/pcDesc.hpp"
|
||||
#include "compiler/compilerOracle.hpp"
|
||||
#include "interpreter/interpreter.hpp"
|
||||
#include "memory/oopFactory.hpp"
|
||||
#include "memory/resourceArea.hpp"
|
||||
|
@ -2674,6 +2675,17 @@ void java_lang_invoke_CallSite::compute_offsets() {
|
|||
if (k != NULL) {
|
||||
compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
|
||||
}
|
||||
|
||||
// Disallow compilation of CallSite.setTargetNormal and CallSite.setTargetVolatile
|
||||
// (For C2: keep this until we have throttling logic for uncommon traps.)
|
||||
if (k != NULL) {
|
||||
instanceKlass* ik = instanceKlass::cast(k);
|
||||
methodOop m_normal = ik->lookup_method(vmSymbols::setTargetNormal_name(), vmSymbols::setTarget_signature());
|
||||
methodOop m_volatile = ik->lookup_method(vmSymbols::setTargetVolatile_name(), vmSymbols::setTarget_signature());
|
||||
guarantee(m_normal && m_volatile, "must exist");
|
||||
m_normal->set_not_compilable_quietly();
|
||||
m_volatile->set_not_compilable_quietly();
|
||||
}
|
||||
}
|
||||
|
||||
oop java_lang_invoke_CallSite::target(oop site) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue