< prev index next >

src/cpu/x86/vm/templateTable_x86_64.cpp

Print this page
rev 9481 : [backport] Purge ShenandoahVerify(Reads|Writes)ToFromSpace.
rev 9610 : Amend "Refactor asm acmp" with a few missing changes

*** 611,624 **** void TemplateTable::index_check(Register array, Register index) { // destroys rbx // check array - if (ShenandoahVerifyReadsToFromSpace) { - oopDesc::bs()->interpreter_read_barrier(_masm, array); - } - __ null_check(array, arrayOopDesc::length_offset_in_bytes()); // sign extend index for use by indexed load __ movl2ptr(index, index); // check index __ cmpl(index, Address(array, arrayOopDesc::length_offset_in_bytes())); --- 611,620 ----
*** 1870,1881 **** void TemplateTable::if_acmp(Condition cc) { transition(atos, vtos); // assume branch is more often taken than not (loops use backward branches) Label not_taken; __ pop_ptr(rdx); ! __ cmpptr(rdx, rax); ! oopDesc::bs()->asm_acmp_barrier(_masm, rdx, rax); __ jcc(j_not(cc), not_taken); branch(false, false); __ bind(not_taken); __ profile_not_taken_branch(rax); } --- 1866,1876 ---- void TemplateTable::if_acmp(Condition cc) { transition(atos, vtos); // assume branch is more often taken than not (loops use backward branches) Label not_taken; __ pop_ptr(rdx); ! __ cmpoops(rdx, rax); __ jcc(j_not(cc), not_taken); branch(false, false); __ bind(not_taken); __ profile_not_taken_branch(rax); }
*** 3520,3532 **** c_rarg1, c_rarg2, c_rarg3); } void TemplateTable::arraylength() { transition(atos, itos); - if (ShenandoahVerifyReadsToFromSpace) { - oopDesc::bs()->interpreter_read_barrier(_masm, rax); - } __ null_check(rax, arrayOopDesc::length_offset_in_bytes()); __ movl(rax, Address(rax, arrayOopDesc::length_offset_in_bytes())); } void TemplateTable::checkcast() { --- 3515,3524 ----
*** 3547,3561 **** __ push(atos); // save receiver for result, and for GC call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc)); // vm_result_2 has metadata result __ get_vm_result_2(rax, r15_thread); __ pop_ptr(rdx); // restore receiver - if (ShenandoahVerifyReadsToFromSpace) { - __ jmp(resolved); - } else { __ jmpb(resolved); - } // Get superklass in rax and subklass in rbx __ bind(quicked); __ mov(rdx, rax); // Save object in rdx; rax needed for subtype check __ movptr(rax, Address(rcx, rbx, --- 3539,3549 ----
< prev index next >