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) {
|