Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/addnode.cpp @ 647:bd441136a5ce
Merge
author | kvn |
---|---|
date | Thu, 19 Mar 2009 09:13:24 -0700 |
parents | 660978a2a31a |
children | bd02caa94611 |
line wrap: on
line diff
--- a/src/share/vm/opto/addnode.cpp Wed Mar 18 11:37:48 2009 -0400 +++ b/src/share/vm/opto/addnode.cpp Thu Mar 19 09:13:24 2009 -0700 @@ -756,7 +756,13 @@ if ( eti == NULL ) { // there must be one pointer among the operands guarantee(tptr == NULL, "must be only one pointer operand"); - tptr = et->isa_oopptr(); + if (UseCompressedOops && Universe::narrow_oop_shift() == 0) { + // 32-bits narrow oop can be the base of address expressions + tptr = et->make_ptr()->isa_oopptr(); + } else { + // only regular oops are expected here + tptr = et->isa_oopptr(); + } guarantee(tptr != NULL, "non-int operand must be pointer"); if (tptr->higher_equal(tp->add_offset(tptr->offset()))) tp = tptr; // Set more precise type for bailout