< prev index next >

src/hotspot/cpu/x86/templateTable_x86.cpp

Print this page

        

*** 2475,2485 **** // 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 && UsePointerPerturbation) { 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); --- 2475,2485 ---- // 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 == 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);
*** 2490,2500 **** __ bind(is_null); } __ cmpoop(rdx, rax); ! if (EnableValhalla && !UsePointerPerturbation) { __ 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); --- 2490,2500 ---- __ bind(is_null); } __ cmpoop(rdx, rax); ! if (EnableValhalla && ACmpOnValues != 1) { __ 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);
< prev index next >