src/cpu/aarch64/vm/compiledIC_aarch64.cpp
Print this page
@@ -68,20 +68,20 @@
if (base == NULL) return; // CodeBuffer::expand failed
// static stub relocation stores the instruction address of the call
__ relocate(static_stub_Relocation::spec(mark));
// static stub relocation also tags the Method* in the code-stream.
__ mov_metadata(rmethod, (Metadata*)NULL);
- __ b(__ pc());
+ __ movptr(rscratch1, 0);
+ __ br(rscratch1);
assert((__ offset() - offset) <= (int)to_interp_stub_size(), "stub too big");
__ end_a_stub();
}
#undef __
int CompiledStaticCall::to_interp_stub_size() {
- // count a mov mem --> to 3 movz/k and a branch
- return 4 * NativeInstruction::instruction_size;
+ return 7 * NativeInstruction::instruction_size;
}
// Relocation entries for call stub, compiled java to interpreter.
int CompiledStaticCall::reloc_to_interp_stub() {
return 4; // 3 in emit_to_interp_stub + 1 in emit_call