equal
deleted
inserted
replaced
32 #include "gc/shared/collectedHeap.inline.hpp" |
32 #include "gc/shared/collectedHeap.inline.hpp" |
33 #include "interpreter/interpreter.hpp" |
33 #include "interpreter/interpreter.hpp" |
34 #include "gc/shared/cardTableBarrierSet.hpp" |
34 #include "gc/shared/cardTableBarrierSet.hpp" |
35 #include "memory/resourceArea.hpp" |
35 #include "memory/resourceArea.hpp" |
36 #include "memory/universe.hpp" |
36 #include "memory/universe.hpp" |
|
37 #include "oops/accessDecorators.hpp" |
37 #include "oops/compressedOops.inline.hpp" |
38 #include "oops/compressedOops.inline.hpp" |
38 #include "oops/klass.inline.hpp" |
39 #include "oops/klass.inline.hpp" |
39 #include "opto/compile.hpp" |
40 #include "opto/compile.hpp" |
40 #include "opto/intrinsicnode.hpp" |
41 #include "opto/intrinsicnode.hpp" |
41 #include "opto/matcher.hpp" |
42 #include "opto/matcher.hpp" |
4051 const Address& addr, Register val, |
4052 const Address& addr, Register val, |
4052 Register tmp1, Register tmp2, Register tmp3) { |
4053 Register tmp1, Register tmp2, Register tmp3) { |
4053 assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL | |
4054 assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL | |
4054 ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator"); |
4055 ON_UNKNOWN_OOP_REF)) == 0, "unsupported decorator"); |
4055 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
4056 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
|
4057 decorators = AccessInternal::decorator_fixup(decorators); |
4056 bool as_raw = (decorators & AS_RAW) != 0; |
4058 bool as_raw = (decorators & AS_RAW) != 0; |
4057 if (as_raw) { |
4059 if (as_raw) { |
4058 bs->BarrierSetAssembler::store_at(this, decorators, type, |
4060 bs->BarrierSetAssembler::store_at(this, decorators, type, |
4059 addr, val, |
4061 addr, val, |
4060 tmp1, tmp2, tmp3); |
4062 tmp1, tmp2, tmp3); |
4069 const Address& addr, Register dst, |
4071 const Address& addr, Register dst, |
4070 Register tmp1, Register tmp2, Label *is_null) { |
4072 Register tmp1, Register tmp2, Label *is_null) { |
4071 assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL | |
4073 assert((decorators & ~(AS_RAW | IN_HEAP | IN_HEAP_ARRAY | IN_ROOT | OOP_NOT_NULL | |
4072 ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator"); |
4074 ON_PHANTOM_OOP_REF | ON_WEAK_OOP_REF)) == 0, "unsupported decorator"); |
4073 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
4075 BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); |
|
4076 decorators = AccessInternal::decorator_fixup(decorators); |
4074 bool as_raw = (decorators & AS_RAW) != 0; |
4077 bool as_raw = (decorators & AS_RAW) != 0; |
4075 if (as_raw) { |
4078 if (as_raw) { |
4076 bs->BarrierSetAssembler::load_at(this, decorators, type, |
4079 bs->BarrierSetAssembler::load_at(this, decorators, type, |
4077 addr, dst, |
4080 addr, dst, |
4078 tmp1, tmp2, is_null); |
4081 tmp1, tmp2, is_null); |