diff src/share/vm/graal/graalCodeInstaller.cpp @ 5682:f787843c890c

implemented inferStamp for NewInstanceStubCall to infer exact, non-null stamp from constant hub value
author Doug Simon <doug.simon@oracle.com>
date Fri, 22 Jun 2012 10:43:06 +0200
parents 69358a2182a3
children 2a64cf19ab2a
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Thu Jun 21 17:33:45 2012 +0200
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Fri Jun 22 10:43:06 2012 +0200
@@ -780,7 +780,9 @@
 
       if (obj->is_a(HotSpotKlassOop::klass())) {
         assert(!obj.is_null(), "");
-        *((jobject*) operand) = JNIHandles::make_local(java_lang_Class::as_klassOop(HotSpotKlassOop::javaMirror(obj)));
+        oop type = HotSpotKlassOop::type(obj);
+        klassOop klass = java_lang_Class::as_klassOop(HotSpotResolvedJavaType::javaMirror(type));
+        *((jobject*) operand) = JNIHandles::make_local(klass);
         _instructions->relocate(instruction, oop_Relocation::spec_for_immediate(), Assembler::imm_operand);
         TRACE_graal_3("relocating (HotSpotJavaType) at %016x/%016x", instruction, operand);
       } else {