Mercurial > hg > truffle
comparison src/share/vm/oops/klass.cpp @ 29:d5fc211aea19
6633953: type2aelembytes{T_ADDRESS} should be 8 bytes in 64 bit VM
Summary: T_ADDRESS size is defined as 'int' size (4 bytes) but C2 use it for raw pointers and as memory type for StoreP and LoadP nodes.
Reviewed-by: jrose
author | kvn |
---|---|
date | Mon, 25 Feb 2008 15:05:44 -0800 |
parents | a61af66fc99e |
children | ba764ed4b6f2 |
comparison
equal
deleted
inserted
replaced
28:67914967a4b5 | 29:d5fc211aea19 |
---|---|
180 | 180 |
181 jint Klass::array_layout_helper(BasicType etype) { | 181 jint Klass::array_layout_helper(BasicType etype) { |
182 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype"); | 182 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype"); |
183 // Note that T_ARRAY is not allowed here. | 183 // Note that T_ARRAY is not allowed here. |
184 int hsize = arrayOopDesc::base_offset_in_bytes(etype); | 184 int hsize = arrayOopDesc::base_offset_in_bytes(etype); |
185 int esize = type2aelembytes[etype]; | 185 int esize = type2aelembytes(etype); |
186 bool isobj = (etype == T_OBJECT); | 186 bool isobj = (etype == T_OBJECT); |
187 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value; | 187 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value; |
188 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize)); | 188 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize)); |
189 | 189 |
190 assert(lh < (int)_lh_neutral_value, "must look like an array layout"); | 190 assert(lh < (int)_lh_neutral_value, "must look like an array layout"); |