comparison src/share/vm/opto/superword.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 f705f25597eb
comparison
equal deleted inserted replaced
28:67914967a4b5 29:d5fc211aea19
157 void SuperWord::find_adjacent_refs() { 157 void SuperWord::find_adjacent_refs() {
158 // Get list of memory operations 158 // Get list of memory operations
159 Node_List memops; 159 Node_List memops;
160 for (int i = 0; i < _block.length(); i++) { 160 for (int i = 0; i < _block.length(); i++) {
161 Node* n = _block.at(i); 161 Node* n = _block.at(i);
162 if (n->is_Mem() && in_bb(n)) { 162 if (n->is_Mem() && in_bb(n) &&
163 is_java_primitive(n->as_Mem()->memory_type())) {
163 int align = memory_alignment(n->as_Mem(), 0); 164 int align = memory_alignment(n->as_Mem(), 0);
164 if (align != bottom_align) { 165 if (align != bottom_align) {
165 memops.push(n); 166 memops.push(n);
166 } 167 }
167 } 168 }
568 569
569 //------------------------------data_size--------------------------- 570 //------------------------------data_size---------------------------
570 int SuperWord::data_size(Node* s) { 571 int SuperWord::data_size(Node* s) {
571 const Type* t = velt_type(s); 572 const Type* t = velt_type(s);
572 BasicType bt = t->array_element_basic_type(); 573 BasicType bt = t->array_element_basic_type();
573 int bsize = type2aelembytes[bt]; 574 int bsize = type2aelembytes(bt);
574 assert(bsize != 0, "valid size"); 575 assert(bsize != 0, "valid size");
575 return bsize; 576 return bsize;
576 } 577 }
577 578
578 //------------------------------extend_packlist--------------------------- 579 //------------------------------extend_packlist---------------------------