Mercurial > hg > truffle
comparison src/share/vm/opto/matcher.cpp @ 681:fbde8ec322d0
6761600: Use sse 4.2 in intrinsics
Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.
Reviewed-by: kvn, never, jrose
author | cfang |
---|---|
date | Tue, 31 Mar 2009 14:07:08 -0700 |
parents | bd441136a5ce |
children | 04fa5affa478 |
comparison
equal
deleted
inserted
replaced
676:d3676b4cb78c | 681:fbde8ec322d0 |
---|---|
744 } | 744 } |
745 } | 745 } |
746 if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) { | 746 if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) { |
747 switch (n->Opcode()) { | 747 switch (n->Opcode()) { |
748 case Op_StrComp: | 748 case Op_StrComp: |
749 case Op_StrEquals: | |
750 case Op_StrIndexOf: | |
749 case Op_AryEq: | 751 case Op_AryEq: |
750 case Op_MemBarVolatile: | 752 case Op_MemBarVolatile: |
751 case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type? | 753 case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type? |
752 nidx = Compile::AliasIdxTop; | 754 nidx = Compile::AliasIdxTop; |
753 nat = NULL; | 755 nat = NULL; |
1786 case Op_Jump: | 1788 case Op_Jump: |
1787 mstack.push(n->in(1), Visit); // Switch Value | 1789 mstack.push(n->in(1), Visit); // Switch Value |
1788 mstack.push(n->in(0), Pre_Visit); // Visit Control input | 1790 mstack.push(n->in(0), Pre_Visit); // Visit Control input |
1789 continue; // while (mstack.is_nonempty()) | 1791 continue; // while (mstack.is_nonempty()) |
1790 case Op_StrComp: | 1792 case Op_StrComp: |
1793 case Op_StrEquals: | |
1794 case Op_StrIndexOf: | |
1791 case Op_AryEq: | 1795 case Op_AryEq: |
1792 set_shared(n); // Force result into register (it will be anyways) | 1796 set_shared(n); // Force result into register (it will be anyways) |
1793 break; | 1797 break; |
1794 case Op_ConP: { // Convert pointers above the centerline to NUL | 1798 case Op_ConP: { // Convert pointers above the centerline to NUL |
1795 TypeNode *tn = n->as_Type(); // Constants derive from type nodes | 1799 TypeNode *tn = n->as_Type(); // Constants derive from type nodes |