# HG changeset patch # User cfang # Date 1253038174 25200 # Node ID 00977607da348a44a8ece8229a3196ba5ffe0f3b # Parent 62001a362ce99647011e2cbdcc5876fb9c504077 6879921: CTW failure jdk6_18/hotspot/src/share/vm/utilities/globalDefinitions.cpp:268 Summary: filter out non-primitives before deciding whether two ops can be packed Reviewed-by: kvn, never diff -r 62001a362ce9 -r 00977607da34 src/share/vm/opto/superword.cpp --- a/src/share/vm/opto/superword.cpp Mon Sep 14 12:14:20 2009 -0700 +++ b/src/share/vm/opto/superword.cpp Tue Sep 15 11:09:34 2009 -0700 @@ -473,6 +473,12 @@ // Can s1 and s2 be in a pack with s1 immediately preceding s2 and // s1 aligned at "align" bool SuperWord::stmts_can_pack(Node* s1, Node* s2, int align) { + + // Do not use superword for non-primitives + if((s1->is_Mem() && !is_java_primitive(s1->as_Mem()->memory_type())) || + (s2->is_Mem() && !is_java_primitive(s2->as_Mem()->memory_type()))) + return false; + if (isomorphic(s1, s2)) { if (independent(s1, s2)) { if (!exists_at(s1, 0) && !exists_at(s2, 1)) {