diff --git a/src/share/vm/opto/compile.cpp b/src/share/vm/opto/compile.cpp index 1832c63b33e40dd072a22e1a2c101b2b2ff93fa2..de05e5fb84a94e141ea73fb55fa7dd7abcea41b4 100644 --- a/src/share/vm/opto/compile.cpp +++ b/src/share/vm/opto/compile.cpp @@ -2192,7 +2192,9 @@ static void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &fpu ) { case Op_DecodeN: assert(!n->in(1)->is_EncodeP(), "should be optimized out"); - assert(n->in(0) == NULL, "no control"); + // DecodeN could be pinned on Sparc where it can't be fold into + // an address expression, see the code for Op_CastPP above. + assert(n->in(0) == NULL || !Matcher::clone_shift_expressions, "no control except on sparc"); break; case Op_EncodeP: {