< prev index next >

src/hotspot/cpu/arm/jniFastGetField_arm.cpp

Print this page

        

*** 125,141 **** __ andr(R1, R1, ~JNIHandles::weak_tag_mask); #else __ bic(R1, R1, JNIHandles::weak_tag_mask); #endif - if (os::is_MP()) { // Address dependency restricts memory access ordering. It's cheaper than explicit LoadLoad barrier __ andr(Rtmp1, Rsafept_cnt, (unsigned)1); __ ldr(Robj, Address(R1, Rtmp1)); - } else { - __ ldr(Robj, Address(R1)); - } #ifdef AARCH64 __ add(Robj, Robj, AsmOperand(R2, lsr, 2)); Address field_addr = Address(Robj); #else --- 125,137 ----
*** 196,206 **** #endif // __ABI_HARD__ default: ShouldNotReachHere(); } - if(os::is_MP()) { // Address dependency restricts memory access ordering. It's cheaper than explicit LoadLoad barrier #if defined(__ABI_HARD__) && !defined(AARCH64) if (type == T_FLOAT || type == T_DOUBLE) { __ ldr_literal(Rsafepoint_counter_addr, safepoint_counter_addr); __ fmrrd(Rres, Rres_hi, D0); --- 192,201 ----
*** 213,225 **** __ ldr_literal(Rsafepoint_counter_addr, safepoint_counter_addr); #endif // !AARCH64 __ eor(Rtmp2, Rres, Rres); __ ldr_s32(Rsafept_cnt2, Address(Rsafepoint_counter_addr, Rtmp2)); } ! } else { ! __ ldr_s32(Rsafept_cnt2, Address(Rsafepoint_counter_addr)); ! } __ cmp(Rsafept_cnt2, Rsafept_cnt); #ifdef AARCH64 __ b(slow_case, ne); __ mov(R0, Rres); __ ret(); --- 208,218 ---- __ ldr_literal(Rsafepoint_counter_addr, safepoint_counter_addr); #endif // !AARCH64 __ eor(Rtmp2, Rres, Rres); __ ldr_s32(Rsafept_cnt2, Address(Rsafepoint_counter_addr, Rtmp2)); } ! __ cmp(Rsafept_cnt2, Rsafept_cnt); #ifdef AARCH64 __ b(slow_case, ne); __ mov(R0, Rres); __ ret();
< prev index next >