8144856: fix assert in CompiledStaticCall::set_to_interpreted

Trivial cleanup in assert code.

Reviewed-by: kvn, goetz, thartmann
This commit is contained in:
Jamsheed Mohammed C M 2016-05-09 23:49:22 -07:00
parent 4ece44cbfa
commit 96c4dc3210
3 changed files with 18 additions and 6 deletions

View File

@ -92,9 +92,11 @@ void CompiledStaticCall::set_to_interpreted(methodHandle callee, address entry)
#ifndef PRODUCT #ifndef PRODUCT
NativeGeneralJump* jump = nativeGeneralJump_at(method_holder->next_instruction_address()); NativeGeneralJump* jump = nativeGeneralJump_at(method_holder->next_instruction_address());
assert(method_holder->data() == 0 || method_holder->data() == (intptr_t)callee(), // read the value once
volatile intptr_t data = method_holder->data();
assert(data == 0 || data == (intptr_t)callee(),
"a) MT-unsafe modification of inline cache"); "a) MT-unsafe modification of inline cache");
assert(method_holder->data() == 0 || jump->jump_destination() == entry, assert(data == 0 || jump->jump_destination() == entry,
"b) MT-unsafe modification of inline cache"); "b) MT-unsafe modification of inline cache");
#endif #endif
// Update stub. // Update stub.

View File

@ -178,10 +178,15 @@ void CompiledStaticCall::set_to_interpreted(methodHandle callee, address entry)
NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub); NativeMovConstReg* method_holder = nativeMovConstReg_at(stub + IC_pos_in_java_to_interp_stub);
NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
assert(method_holder->data() == 0 || method_holder->data() == (intptr_t)callee(), #ifdef ASSERT
// read the value once
volatile intptr_t data = method_holder->data();
volatile address destination = jump->jump_destination();
assert(data == 0 || data == (intptr_t)callee(),
"a) MT-unsafe modification of inline cache"); "a) MT-unsafe modification of inline cache");
assert(jump->jump_destination() == (address)-1 || jump->jump_destination() == entry, assert(destination == (address)-1 || destination == entry,
"b) MT-unsafe modification of inline cache"); "b) MT-unsafe modification of inline cache");
#endif
// Update stub. // Update stub.
method_holder->set_data((intptr_t)callee()); method_holder->set_data((intptr_t)callee());

View File

@ -101,10 +101,15 @@ void CompiledStaticCall::set_to_interpreted(methodHandle callee, address entry)
NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); NativeMovConstReg* method_holder = nativeMovConstReg_at(stub);
NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); NativeJump* jump = nativeJump_at(method_holder->next_instruction_address());
assert(method_holder->data() == 0 || method_holder->data() == (intptr_t)callee(), #ifdef ASSERT
// read the value once
intptr_t data = method_holder->data();
address destination = jump->jump_destination();
assert(data == 0 || data == (intptr_t)callee(),
"a) MT-unsafe modification of inline cache"); "a) MT-unsafe modification of inline cache");
assert(jump->jump_destination() == (address)-1 || jump->jump_destination() == entry, assert(destination == (address)-1 || destination == entry,
"b) MT-unsafe modification of inline cache"); "b) MT-unsafe modification of inline cache");
#endif
// Update stub. // Update stub.
method_holder->set_data((intptr_t)callee()); method_holder->set_data((intptr_t)callee());