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