diff options
author | kvn <none@none> | 2008-02-25 15:05:44 -0800 |
---|---|---|
committer | kvn <none@none> | 2008-02-25 15:05:44 -0800 |
commit | eb467fa21510e810628a9fbb4b71e0da75f29a59 (patch) | |
tree | fc48694e6ccb319e66ab76bc4f122e84c9ba45b6 /src/share/vm/opto/superword.cpp | |
parent | 3d10be53aca1f6bb863ccda54b21bb8a0a0e579b (diff) | |
download | jdk8u_hotspot-eb467fa21510e810628a9fbb4b71e0da75f29a59.tar.gz |
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
Diffstat (limited to 'src/share/vm/opto/superword.cpp')
-rw-r--r-- | src/share/vm/opto/superword.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/share/vm/opto/superword.cpp b/src/share/vm/opto/superword.cpp index b1467fc9e..9b9ffdd02 100644 --- a/src/share/vm/opto/superword.cpp +++ b/src/share/vm/opto/superword.cpp @@ -159,7 +159,8 @@ void SuperWord::find_adjacent_refs() { Node_List memops; for (int i = 0; i < _block.length(); i++) { Node* n = _block.at(i); - if (n->is_Mem() && in_bb(n)) { + if (n->is_Mem() && in_bb(n) && + is_java_primitive(n->as_Mem()->memory_type())) { int align = memory_alignment(n->as_Mem(), 0); if (align != bottom_align) { memops.push(n); @@ -570,7 +571,7 @@ void SuperWord::set_alignment(Node* s1, Node* s2, int align) { int SuperWord::data_size(Node* s) { const Type* t = velt_type(s); BasicType bt = t->array_element_basic_type(); - int bsize = type2aelembytes[bt]; + int bsize = type2aelembytes(bt); assert(bsize != 0, "valid size"); return bsize; } |