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

src/share/vm/opto/compile.cpp

Print this page

        

*** 2181,2191 **** Node* in1 = n->in(1); const Type* t = n->bottom_type(); Node* new_in1 = in1->clone(); new_in1->as_DecodeN()->set_type(t); ! if (!Matcher::clone_shift_expressions) { // // x86, ARM and friends can handle 2 adds in addressing mode // and Matcher can fold a DecodeN node into address by using // a narrow oop directly and do implicit NULL check in address: // --- 2181,2191 ---- Node* in1 = n->in(1); const Type* t = n->bottom_type(); Node* new_in1 = in1->clone(); new_in1->as_DecodeN()->set_type(t); ! if (!Matcher::narrow_oop_use_complex_address()) { // // x86, ARM and friends can handle 2 adds in addressing mode // and Matcher can fold a DecodeN node into address by using // a narrow oop directly and do implicit NULL check in address: //
*** 2289,2299 **** case Op_DecodeN: assert(!n->in(1)->is_EncodeP(), "should be optimized out"); // DecodeN could be pinned on Sparc where it can't be fold into // an address expression, see the code for Op_CastPP above. ! assert(n->in(0) == NULL || !Matcher::clone_shift_expressions, "no control except on sparc"); break; case Op_EncodeP: { Node* in1 = n->in(1); if (in1->is_DecodeN()) { --- 2289,2299 ---- case Op_DecodeN: assert(!n->in(1)->is_EncodeP(), "should be optimized out"); // DecodeN could be pinned on Sparc where it can't be fold into // an address expression, see the code for Op_CastPP above. ! assert(n->in(0) == NULL || !Matcher::narrow_oop_use_complex_address(), "no control except on sparc"); break; case Op_EncodeP: { Node* in1 = n->in(1); if (in1->is_DecodeN()) {
src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File