comparison src/share/vm/utilities/copy.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
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