< prev index next >
src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
*** 2469,2479 ****
// assume branch is more often taken than not (loops use backward branches)
Label taken, not_taken;
__ pop_ptr(rdx);
const int is_value_mask = markOopDesc::always_locked_pattern;
! if (EnableValhalla && ACmpOnValues == 3) {
__ cmpoop(rdx, rax);
__ jcc(Assembler::equal, (cc == equal) ? taken : not_taken);
// might be substitutable, test if either rax or rdx is null
__ movptr(rbx, rdx);
--- 2469,2479 ----
// assume branch is more often taken than not (loops use backward branches)
Label taken, not_taken;
__ pop_ptr(rdx);
const int is_value_mask = markOopDesc::always_locked_pattern;
! if (EnableValhalla) {
__ cmpoop(rdx, rax);
__ jcc(Assembler::equal, (cc == equal) ? taken : not_taken);
// might be substitutable, test if either rax or rdx is null
__ movptr(rbx, rdx);
*** 2503,2538 ****
invoke_is_substitutable(rax, rdx, not_taken, taken);
}
__ stop("Not reachable");
}
-
- if (EnableValhalla && ACmpOnValues == 1) {
- Label is_null;
- __ testptr(rdx, rdx);
- __ jcc(Assembler::zero, is_null);
- __ movptr(rbx, Address(rdx, oopDesc::mark_offset_in_bytes()));
- __ andptr(rbx, is_value_mask);
- __ cmpl(rbx, is_value_mask);
- __ setb(Assembler::equal, rbx);
- __ movzbl(rbx, rbx);
- __ orptr(rdx, rbx);
- __ bind(is_null);
- }
-
__ cmpoop(rdx, rax);
-
- if (EnableValhalla && ACmpOnValues == 2) {
- __ jcc(Assembler::notEqual, (cc == not_equal) ? taken : not_taken);
- __ testptr(rdx, rdx);
- __ jcc(Assembler::zero, (cc == equal) ? taken : not_taken);
- __ movptr(rbx, Address(rdx, oopDesc::mark_offset_in_bytes()));
- __ andptr(rbx, is_value_mask);
- __ cmpl(rbx, is_value_mask);
- cc = (cc == equal) ? not_equal : equal;
- }
-
__ jcc(j_not(cc), not_taken);
__ bind(taken);
branch(false, false);
__ bind(not_taken);
__ profile_not_taken_branch(rax);
--- 2503,2513 ----
< prev index next >