8031389: On x86 C1 emits two relocations for polls

C1 emits two poll_type relocations at safepoint polls because LIR_Assembler::safepoint_poll(..) adds a relocation and calls LIR_Assembler::add_debug_info_for_branch(..) which adds a relocation as well. The implementation of add_debug_info_for_branch(..) is changed to not emit a poll relocation.

Reviewed-by: kvn, roland
This commit is contained in:
Tobias Hartmann 2014-06-05 10:43:16 +02:00
parent 8bd4b5624c
commit aeff8925b3
2 changed files with 1 additions and 5 deletions

View file

@ -1612,13 +1612,10 @@ int LIR_Assembler::safepoint_poll(LIR_Opr tmp, CodeEmitInfo* info) {
__ set((intptr_t)os::get_polling_page(), tmp->as_register());
if (info != NULL) {
add_debug_info_for_branch(info);
} else {
__ relocate(relocInfo::poll_type);
}
int offset = __ offset();
__ relocate(relocInfo::poll_type);
__ ld_ptr(tmp->as_register(), 0, G0);
return offset;
}