1.1 --- a/src/share/vm/opto/superword.cpp Mon Sep 14 12:14:20 2009 -0700 1.2 +++ b/src/share/vm/opto/superword.cpp Tue Sep 15 11:09:34 2009 -0700 1.3 @@ -473,6 +473,12 @@ 1.4 // Can s1 and s2 be in a pack with s1 immediately preceding s2 and 1.5 // s1 aligned at "align" 1.6 bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) { 1.7 + 1.8 + // Do not use superword for non-primitives 1.9 + if((s1->is_Mem() && !is_java_primitive(s1->as_Mem()->memory_type())) || 1.10 + (s2->is_Mem() && !is_java_primitive(s2->as_Mem()->memory_type()))) 1.11 + return false; 1.12 + 1.13 if (isomorphic(s1, s2)) { 1.14 if (independent(s1, s2)) { 1.15 if (!exists_at(s1, 0) && !exists_at(s2, 1)) {