comparison src/share/vm/opto/addnode.cpp @ 647:bd441136a5ce

Merge
author kvn
date Thu, 19 Mar 2009 09:13:24 -0700
parents 660978a2a31a
children bd02caa94611
comparison
equal deleted inserted replaced
640:ba50942c8138 647:bd441136a5ce
754 const Type* et = edge->bottom_type(); 754 const Type* et = edge->bottom_type();
755 const TypeX* eti = et->isa_intptr_t(); 755 const TypeX* eti = et->isa_intptr_t();
756 if ( eti == NULL ) { 756 if ( eti == NULL ) {
757 // there must be one pointer among the operands 757 // there must be one pointer among the operands
758 guarantee(tptr == NULL, "must be only one pointer operand"); 758 guarantee(tptr == NULL, "must be only one pointer operand");
759 tptr = et->isa_oopptr(); 759 if (UseCompressedOops && Universe::narrow_oop_shift() == 0) {
760 // 32-bits narrow oop can be the base of address expressions
761 tptr = et->make_ptr()->isa_oopptr();
762 } else {
763 // only regular oops are expected here
764 tptr = et->isa_oopptr();
765 }
760 guarantee(tptr != NULL, "non-int operand must be pointer"); 766 guarantee(tptr != NULL, "non-int operand must be pointer");
761 if (tptr->higher_equal(tp->add_offset(tptr->offset()))) 767 if (tptr->higher_equal(tp->add_offset(tptr->offset())))
762 tp = tptr; // Set more precise type for bailout 768 tp = tptr; // Set more precise type for bailout
763 continue; 769 continue;
764 } 770 }