comparison src/share/vm/opto/vectornode.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
comparison
equal deleted inserted replaced
28:67914967a4b5 29:d5fc211aea19
133 int ct = hi - lo; 133 int ct = hi - lo;
134 assert(is_power_of_2(ct), "power of 2"); 134 assert(is_power_of_2(ct), "power of 2");
135 int mid = lo + ct/2; 135 int mid = lo + ct/2;
136 Node* n1 = ct == 2 ? in(lo) : binaryTreePack(C, lo, mid); 136 Node* n1 = ct == 2 ? in(lo) : binaryTreePack(C, lo, mid);
137 Node* n2 = ct == 2 ? in(lo+1) : binaryTreePack(C, mid, hi ); 137 Node* n2 = ct == 2 ? in(lo+1) : binaryTreePack(C, mid, hi );
138 int rslt_bsize = ct * type2aelembytes[elt_basic_type()]; 138 int rslt_bsize = ct * type2aelembytes(elt_basic_type());
139 if (bottom_type()->is_floatingpoint()) { 139 if (bottom_type()->is_floatingpoint()) {
140 switch (rslt_bsize) { 140 switch (rslt_bsize) {
141 case 8: return new (C, 3) PackFNode(n1, n2); 141 case 8: return new (C, 3) PackFNode(n1, n2);
142 case 16: return new (C, 3) PackDNode(n1, n2); 142 case 16: return new (C, 3) PackDNode(n1, n2);
143 } 143 }