Mercurial > hg > truffle
comparison src/cpu/sparc/vm/copy_sparc.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 |
---|---|
135 static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { | 135 static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { |
136 pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); | 136 pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); |
137 } | 137 } |
138 | 138 |
139 static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { | 139 static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { |
140 #if 0 | 140 #ifdef _LP64 |
141 if (HeapWordsPerLong == 1 || | 141 guarantee(mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0, |
142 (HeapWordsPerLong == 2 && | 142 "unaligned fill words"); |
143 mask_bits((uintptr_t)tohw, right_n_bits(LogBytesPerLong)) == 0 && | 143 julong* to = (julong*)tohw; |
144 ((count & 1) ? false : count >>= 1))) { | 144 julong v = ((julong)value << 32) | value; |
145 julong* to = (julong*)tohw; | 145 while (count-- > 0) { |
146 julong v = ((julong)value << 32) | value; | 146 *to++ = v; |
147 while (count-- > 0) { | 147 } |
148 *to++ = v; | 148 #else // _LP64 |
149 } | 149 juint* to = (juint*)tohw; |
150 } else { | 150 while (count-- > 0) { |
151 #endif | 151 *to++ = value; |
152 juint* to = (juint*)tohw; | 152 } |
153 count *= HeapWordSize / BytesPerInt; | 153 #endif // _LP64 |
154 while (count-- > 0) { | |
155 *to++ = value; | |
156 } | |
157 // } | |
158 } | 154 } |
159 | 155 |
160 static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) { | 156 static void pd_fill_to_aligned_words(HeapWord* tohw, size_t count, juint value) { |
161 assert(MinObjAlignmentInBytes == BytesPerLong, "need alternate implementation"); | 157 assert(MinObjAlignmentInBytes == BytesPerLong, "need alternate implementation"); |
162 | 158 |