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