--- a/hotspot/src/share/vm/opto/matcher.cpp Mon Nov 02 12:34:27 2015 +0000
+++ b/hotspot/src/share/vm/opto/matcher.cpp Tue Nov 03 09:41:03 2015 +0100
@@ -936,9 +936,13 @@
case Op_StrComp:
case Op_StrEquals:
case Op_StrIndexOf:
+ case Op_StrIndexOfChar:
case Op_AryEq:
+ case Op_HasNegatives:
case Op_MemBarVolatile:
case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type?
+ case Op_StrInflatedCopy:
+ case Op_StrCompressedCopy:
case Op_EncodeISOArray:
nidx = Compile::AliasIdxTop;
nat = NULL;
@@ -2156,7 +2160,11 @@
case Op_StrComp:
case Op_StrEquals:
case Op_StrIndexOf:
+ case Op_StrIndexOfChar:
case Op_AryEq:
+ case Op_HasNegatives:
+ case Op_StrInflatedCopy:
+ case Op_StrCompressedCopy:
case Op_EncodeISOArray:
set_shared(n); // Force result into register (it will be anyways)
break;
@@ -2336,7 +2344,8 @@
n->del_req(3);
break;
}
- case Op_StrEquals: {
+ case Op_StrEquals:
+ case Op_StrIndexOfChar: {
Node *pair1 = new BinaryNode(n->in(2),n->in(3));
n->set_req(2,pair1);
n->set_req(3,n->in(4));
@@ -2353,6 +2362,8 @@
n->del_req(4);
break;
}
+ case Op_StrCompressedCopy:
+ case Op_StrInflatedCopy:
case Op_EncodeISOArray: {
// Restructure into a binary tree for Matching.
Node* pair = new BinaryNode(n->in(3), n->in(4));