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");