8287393: AArch64: Remove trampoline_call1

Reviewed-by: aph, phh
This commit is contained in:
Evgeny Astigeevich 2022-08-01 19:52:42 +00:00 committed by Paul Hohensee
parent 57bf603b73
commit 6cbc234ad1
3 changed files with 9 additions and 7 deletions

View File

@ -849,9 +849,10 @@ void MacroAssembler::call_VM_helper(Register oop_result, address entry_point, in
call_VM_base(oop_result, noreg, noreg, entry_point, number_of_arguments, check_exceptions);
}
// Maybe emit a call via a trampoline. If the code cache is small
// Maybe emit a call via a trampoline. If the code cache is small
// trampolines won't be emitted.
address MacroAssembler::trampoline_call1(Address entry, CodeBuffer* cbuf, bool check_emit_size) {
address MacroAssembler::trampoline_call(Address entry, CodeBuffer* cbuf,
bool check_emit_size) {
assert(entry.rspec().type() == relocInfo::runtime_call_type
|| entry.rspec().type() == relocInfo::opt_virtual_call_type
|| entry.rspec().type() == relocInfo::static_call_type
@ -877,6 +878,9 @@ address MacroAssembler::trampoline_call1(Address entry, CodeBuffer* cbuf, bool c
bool in_scratch_emit_size = false;
#ifdef COMPILER2
if (check_emit_size) {
assert(StubRoutines::aarch64::complete() &&
Thread::current()->is_Compiler_thread() &&
Compile::current()->output() != NULL, "not in output phase of C2 compilation");
// We don't want to emit a trampoline if C2 is generating dummy
// code during its branch shortening phase.
CompileTask* task = ciEnv::current()->task();
@ -906,7 +910,6 @@ address MacroAssembler::trampoline_call1(Address entry, CodeBuffer* cbuf, bool c
return pc();
}
// Emit a trampoline stub for a call to a target which is too far away.
//
// code sequences:

View File

@ -1175,8 +1175,7 @@ public:
// - relocInfo::virtual_call_type
//
// Return: NULL if CodeCache is full.
address trampoline_call(Address entry, CodeBuffer* cbuf = NULL) { return trampoline_call1(entry, cbuf, true); }
address trampoline_call1(Address entry, CodeBuffer* cbuf, bool check_emit_size = true);
address trampoline_call(Address entry, CodeBuffer* cbuf = NULL, bool check_emit_size = true);
static bool far_branches() {
return ReservedCodeCacheSize > branch_range;

View File

@ -1053,7 +1053,7 @@ static void gen_continuation_enter(MacroAssembler* masm,
__ br(Assembler::NE, call_thaw);
address mark = __ pc();
__ trampoline_call1(resolve, NULL, false);
__ trampoline_call(resolve, /*cbuf=*/ NULL, /*check_emit_size=*/ false);
oop_maps->add_gc_map(__ pc() - start, map);
__ post_call_nop();
@ -1079,7 +1079,7 @@ static void gen_continuation_enter(MacroAssembler* masm,
__ br(Assembler::NE, call_thaw);
address mark = __ pc();
__ trampoline_call1(resolve, NULL, false);
__ trampoline_call(resolve, /*cbuf=*/ NULL, /*check_emit_size=*/ false);
oop_maps->add_gc_map(__ pc() - start, map);
__ post_call_nop();