< prev index next >
src/cpu/x86/vm/templateTable_x86.cpp
Print this page
rev 13551 : imported patch gcinterface-aarch64-5.patch
*** 997,1015 ****
__ bind(ok_is_subtype);
// Get the value we will store
__ movptr(rax, at_tos());
// Now store using the appropriate barrier
! do_oop_store(_masm, Address(rdx, 0), rax, ACCESS_IN_HEAP);
__ jmp(done);
// Have a NULL in rax, rdx=array, ecx=index. Store NULL at ary[idx]
__ bind(is_null);
__ profile_null_seen(rbx);
// Store a NULL
! do_oop_store(_masm, element_address, noreg, ACCESS_IN_HEAP);
// Pop stack arguments
__ bind(done);
__ addptr(rsp, 3 * Interpreter::stackElementSize);
}
--- 997,1015 ----
__ bind(ok_is_subtype);
// Get the value we will store
__ movptr(rax, at_tos());
// Now store using the appropriate barrier
! do_oop_store(_masm, Address(rdx, 0), rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY);
__ jmp(done);
// Have a NULL in rax, rdx=array, ecx=index. Store NULL at ary[idx]
__ bind(is_null);
__ profile_null_seen(rbx);
// Store a NULL
! do_oop_store(_masm, element_address, noreg, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY);
// Pop stack arguments
__ bind(done);
__ addptr(rsp, 3 * Interpreter::stackElementSize);
}
*** 3015,3025 ****
// atos
{
__ pop(atos);
if (!is_static) pop_and_check_object(obj);
// Store into the field
! do_oop_store(_masm, field, rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY);
if (!is_static && rc == may_rewrite) {
patch_bytecode(Bytecodes::_fast_aputfield, bc, rbx, true, byte_no);
}
__ jmp(Done);
}
--- 3015,3025 ----
// atos
{
__ pop(atos);
if (!is_static) pop_and_check_object(obj);
// Store into the field
! do_oop_store(_masm, field, rax, ACCESS_IN_HEAP);
if (!is_static && rc == may_rewrite) {
patch_bytecode(Bytecodes::_fast_aputfield, bc, rbx, true, byte_no);
}
__ jmp(Done);
}
*** 3268,3278 ****
const Address field(rcx, rbx, Address::times_1);
// access field
switch (bytecode()) {
case Bytecodes::_fast_aputfield:
! do_oop_store(_masm, field, rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY);
break;
case Bytecodes::_fast_lputfield:
#ifdef _LP64
__ movq(field, rax);
#else
--- 3268,3278 ----
const Address field(rcx, rbx, Address::times_1);
// access field
switch (bytecode()) {
case Bytecodes::_fast_aputfield:
! do_oop_store(_masm, field, rax, ACCESS_IN_HEAP);
break;
case Bytecodes::_fast_lputfield:
#ifdef _LP64
__ movq(field, rax);
#else
< prev index next >