comparison src/share/vm/opto/memnode.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 ff5961f4c095
children f34d9da7acb2
comparison
equal deleted inserted replaced
28:67914967a4b5 29:d5fc211aea19
887 Compile::AliasType* atp = phase->C->alias_type(load_base->adr_type()); 887 Compile::AliasType* atp = phase->C->alias_type(load_base->adr_type());
888 intptr_t cache_offset; 888 intptr_t cache_offset;
889 int shift = -1; 889 int shift = -1;
890 Node* cache = NULL; 890 Node* cache = NULL;
891 if (is_autobox_cache(atp)) { 891 if (is_autobox_cache(atp)) {
892 shift = exact_log2(type2aelembytes[T_OBJECT]); 892 shift = exact_log2(type2aelembytes(T_OBJECT));
893 cache = AddPNode::Ideal_base_and_offset(load_base->in(Address), phase, cache_offset); 893 cache = AddPNode::Ideal_base_and_offset(load_base->in(Address), phase, cache_offset);
894 } 894 }
895 if (cache != NULL && base->in(Address)->is_AddP()) { 895 if (cache != NULL && base->in(Address)->is_AddP()) {
896 Node* elements[4]; 896 Node* elements[4];
897 int count = base->in(Address)->as_AddP()->unpack_offsets(elements, ARRAY_SIZE(elements)); 897 int count = base->in(Address)->as_AddP()->unpack_offsets(elements, ARRAY_SIZE(elements));