Mercurial > hg > truffle
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 |