equal
deleted
inserted
replaced
105 |
105 |
106 assert(type == T_INT || type == T_OBJECT || type == T_ARRAY LP64_ONLY( || type == T_LONG ), "unexpected type"); |
106 assert(type == T_INT || type == T_OBJECT || type == T_ARRAY LP64_ONLY( || type == T_LONG ), "unexpected type"); |
107 __ xchg(access.resolved_addr(), result, result, LIR_OprFact::illegalOpr); |
107 __ xchg(access.resolved_addr(), result, result, LIR_OprFact::illegalOpr); |
108 |
108 |
109 if (access.is_oop()) { |
109 if (access.is_oop()) { |
|
110 result = load_reference_barrier(access.gen(), result, access.access_emit_info(), true); |
110 if (ShenandoahSATBBarrier) { |
111 if (ShenandoahSATBBarrier) { |
111 pre_barrier(access.gen(), access.access_emit_info(), access.decorators(), LIR_OprFact::illegalOpr, |
112 pre_barrier(access.gen(), access.access_emit_info(), access.decorators(), LIR_OprFact::illegalOpr, |
112 result /* pre_val */); |
113 result /* pre_val */); |
113 } |
114 } |
114 } |
115 } |