Mercurial > hg > truffle
diff src/share/vm/opto/parse2.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | 73970d8c0b27 |
children | c0939256690b |
line wrap: on
line diff
--- a/src/share/vm/opto/parse2.cpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/share/vm/opto/parse2.cpp Sun Apr 13 17:43:42 2008 -0400 @@ -67,12 +67,16 @@ const Type* elemtype = arytype->elem(); if (UseUniqueSubclasses && result2 != NULL) { - const TypeInstPtr* toop = elemtype->isa_instptr(); + const Type* el = elemtype; + if (elemtype->isa_narrowoop()) { + el = elemtype->is_narrowoop()->make_oopptr(); + } + const TypeInstPtr* toop = el->isa_instptr(); if (toop) { if (toop->klass()->as_instance_klass()->unique_concrete_subklass()) { // If we load from "AbstractClass[]" we must see "ConcreteSubClass". const Type* subklass = Type::get_const_type(toop->klass()); - elemtype = subklass->join(elemtype); + elemtype = subklass->join(el); } } }