comparison src/share/vm/opto/matcher.cpp @ 169:9148c65abefc

6695049: (coll) Create an x86 intrinsic for Arrays.equals Summary: Intrinsify java/util/Arrays.equals(char[], char[]) Reviewed-by: kvn, never
author rasbold
date Thu, 29 May 2008 16:22:09 -0700
parents 7793bd37a336
children d1605aabd0a1 8d191a7697e2
comparison
equal deleted inserted replaced
168:7793bd37a336 169:9148c65abefc
742 } 742 }
743 } 743 }
744 if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) { 744 if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) {
745 switch (n->Opcode()) { 745 switch (n->Opcode()) {
746 case Op_StrComp: 746 case Op_StrComp:
747 case Op_AryEq:
747 case Op_MemBarVolatile: 748 case Op_MemBarVolatile:
748 case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type? 749 case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type?
749 nidx = Compile::AliasIdxTop; 750 nidx = Compile::AliasIdxTop;
750 nat = NULL; 751 nat = NULL;
751 break; 752 break;
1715 case Op_Jump: 1716 case Op_Jump:
1716 mstack.push(n->in(1), Visit); // Switch Value 1717 mstack.push(n->in(1), Visit); // Switch Value
1717 mstack.push(n->in(0), Pre_Visit); // Visit Control input 1718 mstack.push(n->in(0), Pre_Visit); // Visit Control input
1718 continue; // while (mstack.is_nonempty()) 1719 continue; // while (mstack.is_nonempty())
1719 case Op_StrComp: 1720 case Op_StrComp:
1721 case Op_AryEq:
1720 set_shared(n); // Force result into register (it will be anyways) 1722 set_shared(n); // Force result into register (it will be anyways)
1721 break; 1723 break;
1722 case Op_ConP: { // Convert pointers above the centerline to NUL 1724 case Op_ConP: { // Convert pointers above the centerline to NUL
1723 TypeNode *tn = n->as_Type(); // Constants derive from type nodes 1725 TypeNode *tn = n->as_Type(); // Constants derive from type nodes
1724 const TypePtr* tp = tn->type()->is_ptr(); 1726 const TypePtr* tp = tn->type()->is_ptr();