diff -r d3676b4cb78c -r fbde8ec322d0 src/share/vm/opto/matcher.cpp --- a/src/share/vm/opto/matcher.cpp Tue Mar 31 10:02:01 2009 -0700 +++ b/src/share/vm/opto/matcher.cpp Tue Mar 31 14:07:08 2009 -0700 @@ -746,6 +746,8 @@ if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) { switch (n->Opcode()) { case Op_StrComp: + case Op_StrEquals: + case Op_StrIndexOf: case Op_AryEq: case Op_MemBarVolatile: case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type? @@ -1788,6 +1790,8 @@ mstack.push(n->in(0), Pre_Visit); // Visit Control input continue; // while (mstack.is_nonempty()) case Op_StrComp: + case Op_StrEquals: + case Op_StrIndexOf: case Op_AryEq: set_shared(n); // Force result into register (it will be anyways) break;