equal
deleted
inserted
replaced
33 #include "oops/oop.inline.hpp" |
33 #include "oops/oop.inline.hpp" |
34 #include "prims/methodHandles.hpp" |
34 #include "prims/methodHandles.hpp" |
35 #include "runtime/sharedRuntime.hpp" |
35 #include "runtime/sharedRuntime.hpp" |
36 #include "runtime/stubRoutines.hpp" |
36 #include "runtime/stubRoutines.hpp" |
37 #include "runtime/synchronizer.hpp" |
37 #include "runtime/synchronizer.hpp" |
|
38 #include "utilities/macros.hpp" |
38 |
39 |
39 #ifndef CC_INTERP |
40 #ifndef CC_INTERP |
40 |
41 |
41 #define __ _masm-> |
42 #define __ _masm-> |
42 |
43 |
134 Register val, |
135 Register val, |
135 BarrierSet::Name barrier, |
136 BarrierSet::Name barrier, |
136 bool precise) { |
137 bool precise) { |
137 assert(val == noreg || val == rax, "parameter is just for looks"); |
138 assert(val == noreg || val == rax, "parameter is just for looks"); |
138 switch (barrier) { |
139 switch (barrier) { |
139 #ifndef SERIALGC |
140 #if INCLUDE_ALL_GCS |
140 case BarrierSet::G1SATBCT: |
141 case BarrierSet::G1SATBCT: |
141 case BarrierSet::G1SATBCTLogging: |
142 case BarrierSet::G1SATBCTLogging: |
142 { |
143 { |
143 // flatten object address if needed |
144 // flatten object address if needed |
144 if (obj.index() == noreg && obj.disp() == 0) { |
145 if (obj.index() == noreg && obj.disp() == 0) { |
165 rbx /* tmp2 */); |
166 rbx /* tmp2 */); |
166 } |
167 } |
167 |
168 |
168 } |
169 } |
169 break; |
170 break; |
170 #endif // SERIALGC |
171 #endif // INCLUDE_ALL_GCS |
171 case BarrierSet::CardTableModRef: |
172 case BarrierSet::CardTableModRef: |
172 case BarrierSet::CardTableExtension: |
173 case BarrierSet::CardTableExtension: |
173 { |
174 { |
174 if (val == noreg) { |
175 if (val == noreg) { |
175 __ store_heap_oop_null(obj); |
176 __ store_heap_oop_null(obj); |