src/share/vm/opto/matcher.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7107042 Sdiff src/share/vm/opto

src/share/vm/opto/matcher.cpp

Print this page




1898       case Op_ReverseBytesI:
1899       case Op_ReverseBytesL:
1900         if( n->in(1)->is_Load() &&        // Prior load
1901             n->outcnt() == 1 )            // Not already shared
1902           set_shared(n);                  // Force it to be a root
1903         break;
1904       case Op_BoxLock:         // Cant match until we get stack-regs in ADLC
1905       case Op_IfFalse:
1906       case Op_IfTrue:
1907       case Op_MachProj:
1908       case Op_MergeMem:
1909       case Op_Catch:
1910       case Op_CatchProj:
1911       case Op_CProj:
1912       case Op_JumpProj:
1913       case Op_JProj:
1914       case Op_NeverBranch:
1915         set_dontcare(n);
1916         break;
1917       case Op_Jump:
1918         mstack.push(n->in(1), Visit);         // Switch Value
1919         mstack.push(n->in(0), Pre_Visit);     // Visit Control input
1920         continue;                             // while (mstack.is_nonempty())
1921       case Op_StrComp:
1922       case Op_StrEquals:
1923       case Op_StrIndexOf:
1924       case Op_AryEq:
1925         set_shared(n); // Force result into register (it will be anyways)
1926         break;
1927       case Op_ConP: {  // Convert pointers above the centerline to NUL
1928         TypeNode *tn = n->as_Type(); // Constants derive from type nodes
1929         const TypePtr* tp = tn->type()->is_ptr();
1930         if (tp->_ptr == TypePtr::AnyNull) {
1931           tn->set_type(TypePtr::NULL_PTR);
1932         }
1933         break;
1934       }
1935       case Op_ConN: {  // Convert narrow pointers above the centerline to NUL
1936         TypeNode *tn = n->as_Type(); // Constants derive from type nodes
1937         const TypePtr* tp = tn->type()->make_ptr();
1938         if (tp && tp->_ptr == TypePtr::AnyNull) {




1898       case Op_ReverseBytesI:
1899       case Op_ReverseBytesL:
1900         if( n->in(1)->is_Load() &&        // Prior load
1901             n->outcnt() == 1 )            // Not already shared
1902           set_shared(n);                  // Force it to be a root
1903         break;
1904       case Op_BoxLock:         // Cant match until we get stack-regs in ADLC
1905       case Op_IfFalse:
1906       case Op_IfTrue:
1907       case Op_MachProj:
1908       case Op_MergeMem:
1909       case Op_Catch:
1910       case Op_CatchProj:
1911       case Op_CProj:
1912       case Op_JumpProj:
1913       case Op_JProj:
1914       case Op_NeverBranch:
1915         set_dontcare(n);
1916         break;
1917       case Op_Jump:
1918         mstack.push(n->in(1), Pre_Visit);     // Switch Value (could be shared)
1919         mstack.push(n->in(0), Pre_Visit);     // Visit Control input
1920         continue;                             // while (mstack.is_nonempty())
1921       case Op_StrComp:
1922       case Op_StrEquals:
1923       case Op_StrIndexOf:
1924       case Op_AryEq:
1925         set_shared(n); // Force result into register (it will be anyways)
1926         break;
1927       case Op_ConP: {  // Convert pointers above the centerline to NUL
1928         TypeNode *tn = n->as_Type(); // Constants derive from type nodes
1929         const TypePtr* tp = tn->type()->is_ptr();
1930         if (tp->_ptr == TypePtr::AnyNull) {
1931           tn->set_type(TypePtr::NULL_PTR);
1932         }
1933         break;
1934       }
1935       case Op_ConN: {  // Convert narrow pointers above the centerline to NUL
1936         TypeNode *tn = n->as_Type(); // Constants derive from type nodes
1937         const TypePtr* tp = tn->type()->make_ptr();
1938         if (tp && tp->_ptr == TypePtr::AnyNull) {


src/share/vm/opto/matcher.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File