mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +02:00
Merge
This commit is contained in:
commit
39b0e57fdd
5098 changed files with 176905 additions and 81175 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -577,7 +577,7 @@ oop SharedRuntime::retrieve_receiver( Symbol* sig, frame caller ) {
|
|||
assert(caller.is_interpreted_frame(), "");
|
||||
int args_size = ArgumentSizeComputer(sig).size() + 1;
|
||||
assert(args_size <= caller.interpreter_frame_expression_stack_size(), "receiver must be on interpreter stack");
|
||||
oop result = (oop) *caller.interpreter_frame_tos_at(args_size - 1);
|
||||
oop result = cast_to_oop(*caller.interpreter_frame_tos_at(args_size - 1));
|
||||
assert(Universe::heap()->is_in(result) && result->is_oop(), "receiver must be an oop");
|
||||
return result;
|
||||
}
|
||||
|
@ -1051,7 +1051,8 @@ Handle SharedRuntime::find_callee_info_helper(JavaThread* thread,
|
|||
|
||||
// Find receiver for non-static call
|
||||
if (bc != Bytecodes::_invokestatic &&
|
||||
bc != Bytecodes::_invokedynamic) {
|
||||
bc != Bytecodes::_invokedynamic &&
|
||||
bc != Bytecodes::_invokehandle) {
|
||||
// This register map must be update since we need to find the receiver for
|
||||
// compiled frames. The receiver might be in a register.
|
||||
RegisterMap reg_map2(thread);
|
||||
|
@ -1078,7 +1079,7 @@ Handle SharedRuntime::find_callee_info_helper(JavaThread* thread,
|
|||
|
||||
#ifdef ASSERT
|
||||
// Check that the receiver klass is of the right subtype and that it is initialized for virtual calls
|
||||
if (bc != Bytecodes::_invokestatic && bc != Bytecodes::_invokedynamic) {
|
||||
if (bc != Bytecodes::_invokestatic && bc != Bytecodes::_invokedynamic && bc != Bytecodes::_invokehandle) {
|
||||
assert(receiver.not_null(), "should have thrown exception");
|
||||
KlassHandle receiver_klass(THREAD, receiver->klass());
|
||||
Klass* rk = constants->klass_ref_at(bytecode_index, CHECK_(nullHandle));
|
||||
|
@ -1240,9 +1241,9 @@ methodHandle SharedRuntime::resolve_sub_helper(JavaThread *thread,
|
|||
#endif
|
||||
|
||||
if (is_virtual) {
|
||||
assert(receiver.not_null(), "sanity check");
|
||||
assert(receiver.not_null() || invoke_code == Bytecodes::_invokehandle, "sanity check");
|
||||
bool static_bound = call_info.resolved_method()->can_be_statically_bound();
|
||||
KlassHandle h_klass(THREAD, receiver->klass());
|
||||
KlassHandle h_klass(THREAD, invoke_code == Bytecodes::_invokehandle ? NULL : receiver->klass());
|
||||
CompiledIC::compute_monomorphic_entry(callee_method, h_klass,
|
||||
is_optimized, static_bound, virtual_call_info,
|
||||
CHECK_(methodHandle()));
|
||||
|
@ -1505,8 +1506,11 @@ methodHandle SharedRuntime::handle_ic_miss_helper(JavaThread *thread, TRAPS) {
|
|||
info, CHECK_(methodHandle()));
|
||||
inline_cache->set_to_monomorphic(info);
|
||||
} else if (!inline_cache->is_megamorphic() && !inline_cache->is_clean()) {
|
||||
// Change to megamorphic
|
||||
inline_cache->set_to_megamorphic(&call_info, bc, CHECK_(methodHandle()));
|
||||
// Potential change to megamorphic
|
||||
bool successful = inline_cache->set_to_megamorphic(&call_info, bc, CHECK_(methodHandle()));
|
||||
if (!successful) {
|
||||
inline_cache->set_to_clean();
|
||||
}
|
||||
} else {
|
||||
// Either clean or megamorphic
|
||||
}
|
||||
|
@ -2936,7 +2940,7 @@ JRT_LEAF(intptr_t*, SharedRuntime::OSR_migration_begin( JavaThread *thread) )
|
|||
ObjectSynchronizer::inflate_helper(kptr2->obj());
|
||||
// Now the displaced header is free to move
|
||||
buf[i++] = (intptr_t)lock->displaced_header();
|
||||
buf[i++] = (intptr_t)kptr2->obj();
|
||||
buf[i++] = cast_from_oop<intptr_t>(kptr2->obj());
|
||||
}
|
||||
}
|
||||
assert( i - max_locals == active_monitor_count*2, "found the expected number of monitors" );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue