Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/instanceKlass.cpp @ 14456:abec000618bf
Merge
author | kvn |
---|---|
date | Tue, 28 Jan 2014 12:25:34 -0800 |
parents | 2353011244bd 2da20f966936 |
children | 28f281e8de1d |
comparison
equal
deleted
inserted
replaced
14269:2a8891e0a082 | 14456:abec000618bf |
---|---|
1201 if (_oop_map_cache == NULL) { | 1201 if (_oop_map_cache == NULL) { |
1202 // Otherwise, allocate a new one. | 1202 // Otherwise, allocate a new one. |
1203 MutexLocker x(OopMapCacheAlloc_lock); | 1203 MutexLocker x(OopMapCacheAlloc_lock); |
1204 // First time use. Allocate a cache in C heap | 1204 // First time use. Allocate a cache in C heap |
1205 if (_oop_map_cache == NULL) { | 1205 if (_oop_map_cache == NULL) { |
1206 _oop_map_cache = new OopMapCache(); | 1206 // Release stores from OopMapCache constructor before assignment |
1207 // to _oop_map_cache. C++ compilers on ppc do not emit the | |
1208 // required memory barrier only because of the volatile | |
1209 // qualifier of _oop_map_cache. | |
1210 OrderAccess::release_store_ptr(&_oop_map_cache, new OopMapCache()); | |
1207 } | 1211 } |
1208 } | 1212 } |
1209 // _oop_map_cache is constant after init; lookup below does is own locking. | 1213 // _oop_map_cache is constant after init; lookup below does is own locking. |
1210 _oop_map_cache->lookup(method, bci, entry_for); | 1214 _oop_map_cache->lookup(method, bci, entry_for); |
1211 } | 1215 } |