8287393: AArch64: Remove trampoline_call1
Reviewed-by: aph, phh
This commit is contained in:
parent
57bf603b73
commit
6cbc234ad1
@ -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:
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user