Mercurial > hg > truffle
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(); |