< prev index next > src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
// resolve first time through
// Class initialization barrier slow path lands here as well.
__ bind(L_clinit_barrier_slow);
address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
__ movl(temp, code);
- __ call_VM(noreg, entry, temp);
+ __ call_VM_preemptable(noreg, entry, temp);
// Update registers with resolved info
__ load_method_entry(cache, index);
__ bind(resolved);
__ jcc(Assembler::equal, resolved);
// resolve first time through
address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
__ movl(temp, code);
- __ call_VM(noreg, entry, temp);
+ __ call_VM_preemptable(noreg, entry, temp);
// Update registers with resolved info
__ load_field_entry(cache, index);
__ bind(resolved);
}
Bytecodes::Code code = bytecode();
// Call to the interpreter runtime to resolve invokedynamic
address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_from_cache);
__ movl(method, code); // this is essentially Bytecodes::_invokedynamic
- __ call_VM(noreg, entry, method);
+ __ call_VM_preemptable(noreg, entry, method);
// Update registers with resolved info
__ load_resolved_indy_entry(cache, index);
__ movptr(method, Address(cache, in_bytes(ResolvedIndyEntry::method_offset())));
#ifdef ASSERT
__ pop(rcx); // restore stack pointer to what it was when we came in.
__ bind(slow_case_no_pop);
__ get_constant_pool(c_rarg1);
__ get_unsigned_2_byte_index_at_bcp(c_rarg2, 1);
- call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::_new), c_rarg1, c_rarg2);
- __ verify_oop(rax);
+ __ call_VM_preemptable(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::_new), c_rarg1, c_rarg2);
+ __ verify_oop(rax);
// continue
__ bind(done);
}
< prev index next >