510 // If the receiver is null then it is OK to jump to the slow path. |
510 // If the receiver is null then it is OK to jump to the slow path. |
511 __ load_and_test_long(pre_val, Address(Rargp, Interpreter::stackElementSize)); // Get receiver. |
511 __ load_and_test_long(pre_val, Address(Rargp, Interpreter::stackElementSize)); // Get receiver. |
512 __ z_bre(slow_path); |
512 __ z_bre(slow_path); |
513 |
513 |
514 // Load the value of the referent field. |
514 // Load the value of the referent field. |
515 BarrierSetAssembler *bs = Universe::heap()->barrier_set()->barrier_set_assembler(); |
515 BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
516 bs->load_at(_masm, IN_HEAP | ON_WEAK_OOP_REF, T_OBJECT, |
516 bs->load_at(_masm, IN_HEAP | ON_WEAK_OOP_REF, T_OBJECT, |
517 Address(pre_val, referent_offset), pre_val, scratch1, scratch2); |
517 Address(pre_val, referent_offset), pre_val, scratch1, scratch2); |
518 |
518 |
519 // Restore caller sp for c2i case. |
519 // Restore caller sp for c2i case. |
520 __ resize_frame_absolute(Z_R10, Z_R0, true); // Cut the stack back to where the caller started. |
520 __ resize_frame_absolute(Z_R10, Z_R0, true); // Cut the stack back to where the caller started. |