< 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 >