aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/superword.cpp
diff options
context:
space:
mode:
authorkvn <none@none>2008-02-25 15:05:44 -0800
committerkvn <none@none>2008-02-25 15:05:44 -0800
commiteb467fa21510e810628a9fbb4b71e0da75f29a59 (patch)
treefc48694e6ccb319e66ab76bc4f122e84c9ba45b6 /src/share/vm/opto/superword.cpp
parent3d10be53aca1f6bb863ccda54b21bb8a0a0e579b (diff)
downloadjdk8u_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.cpp5
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;
}