comparison src/cpu/x86/vm/c1_LIRGenerator_x86.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 d1605aabd0a1 37f87013dfd8
comparison
equal deleted inserted replaced
28:67914967a4b5 29:d5fc211aea19
149 BasicType type, bool needs_card_mark) { 149 BasicType type, bool needs_card_mark) {
150 int offset_in_bytes = arrayOopDesc::base_offset_in_bytes(type); 150 int offset_in_bytes = arrayOopDesc::base_offset_in_bytes(type);
151 151
152 LIR_Address* addr; 152 LIR_Address* addr;
153 if (index_opr->is_constant()) { 153 if (index_opr->is_constant()) {
154 int elem_size = type2aelembytes[type]; 154 int elem_size = type2aelembytes(type);
155 addr = new LIR_Address(array_opr, 155 addr = new LIR_Address(array_opr,
156 offset_in_bytes + index_opr->as_jint() * elem_size, type); 156 offset_in_bytes + index_opr->as_jint() * elem_size, type);
157 } else { 157 } else {
158 addr = new LIR_Address(array_opr, 158 addr = new LIR_Address(array_opr,
159 index_opr, 159 index_opr,