< prev index next >
src/hotspot/share/c1/c1_LIRGenerator.cpp
Print this page
*** 3283,3293 ****
--- 3283,3299 ----
}
}
void LIRGenerator::increment_backedge_counter_conditionally(LIR_Condition cond, LIR_Opr left, LIR_Opr right, CodeEmitInfo* info, int left_bci, int right_bci, int bci) {
if (compilation()->count_backedges()) {
+ #if defined(X86) && !defined(_LP64)
+ LIR_Opr left_copy = new_register(left->type());
+ __ move(left, left_copy);
+ __ cmp(cond, left_copy, right);
+ #else
__ cmp(cond, left, right);
+ #endif
LIR_Opr step = new_register(T_INT);
LIR_Opr plus_one = LIR_OprFact::intConst(InvocationCounter::count_increment);
LIR_Opr zero = LIR_OprFact::intConst(0);
__ cmove(cond,
(left_bci < bci) ? plus_one : zero,
< prev index next >