146 pd_conjoint_jlongs_atomic(from, to, count); |
146 pd_conjoint_jlongs_atomic(from, to, count); |
147 } |
147 } |
148 |
148 |
149 // oops, conjoint, atomic on each oop |
149 // oops, conjoint, atomic on each oop |
150 static void conjoint_oops_atomic(oop* from, oop* to, size_t count) { |
150 static void conjoint_oops_atomic(oop* from, oop* to, size_t count) { |
151 assert_params_ok(from, to, LogBytesPerOop); |
151 assert_params_ok(from, to, LogBytesPerHeapOop); |
152 assert_non_zero(count); |
152 assert_non_zero(count); |
153 pd_conjoint_oops_atomic(from, to, count); |
153 pd_conjoint_oops_atomic(from, to, count); |
|
154 } |
|
155 |
|
156 // overloaded for UseCompressedOops |
|
157 static void conjoint_oops_atomic(narrowOop* from, narrowOop* to, size_t count) { |
|
158 assert(sizeof(narrowOop) == sizeof(jint), "this cast is wrong"); |
|
159 assert_params_ok(from, to, LogBytesPerInt); |
|
160 assert_non_zero(count); |
|
161 pd_conjoint_jints_atomic((jint*)from, (jint*)to, count); |
154 } |
162 } |
155 |
163 |
156 // Copy a span of memory. If the span is an integral number of aligned |
164 // Copy a span of memory. If the span is an integral number of aligned |
157 // longs, words, or ints, copy those units atomically. |
165 // longs, words, or ints, copy those units atomically. |
158 // The largest atomic transfer unit is 8 bytes, or the largest power |
166 // The largest atomic transfer unit is 8 bytes, or the largest power |
186 pd_arrayof_conjoint_jlongs(from, to, count); |
194 pd_arrayof_conjoint_jlongs(from, to, count); |
187 } |
195 } |
188 |
196 |
189 // oops, conjoint array, atomic on each oop |
197 // oops, conjoint array, atomic on each oop |
190 static void arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { |
198 static void arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { |
191 assert_params_ok(from, to, LogBytesPerOop); |
199 assert_params_ok(from, to, LogBytesPerHeapOop); |
192 assert_non_zero(count); |
200 assert_non_zero(count); |
193 pd_arrayof_conjoint_oops(from, to, count); |
201 pd_arrayof_conjoint_oops(from, to, count); |
194 } |
202 } |
195 |
203 |
196 // Known overlap methods |
204 // Known overlap methods |