2032 // Now store the result on the stack |
2032 // Now store the result on the stack |
2033 // |
2033 // |
2034 TosState tos_type = cache->flag_state(); |
2034 TosState tos_type = cache->flag_state(); |
2035 int field_offset = cache->f2_as_index(); |
2035 int field_offset = cache->f2_as_index(); |
2036 if (cache->is_volatile()) { |
2036 if (cache->is_volatile()) { |
|
2037 if (support_IRIW_for_not_multiple_copy_atomic_cpu) { |
|
2038 OrderAccess::fence(); |
|
2039 } |
2037 if (tos_type == atos) { |
2040 if (tos_type == atos) { |
2038 VERIFY_OOP(obj->obj_field_acquire(field_offset)); |
2041 VERIFY_OOP(obj->obj_field_acquire(field_offset)); |
2039 SET_STACK_OBJECT(obj->obj_field_acquire(field_offset), -1); |
2042 SET_STACK_OBJECT(obj->obj_field_acquire(field_offset), -1); |
2040 } else if (tos_type == itos) { |
2043 } else if (tos_type == itos) { |
2041 SET_STACK_INT(obj->int_field_acquire(field_offset), -1); |
2044 SET_STACK_INT(obj->int_field_acquire(field_offset), -1); |