Mercurial > hg > graal-jvmci-8
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 } |