Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
5679:b32dc49bc024 | 5682:f787843c890c |
---|---|
778 address operand = Assembler::locate_operand(instruction, Assembler::imm_operand); | 778 address operand = Assembler::locate_operand(instruction, Assembler::imm_operand); |
779 Handle obj = Constant::object(constant); | 779 Handle obj = Constant::object(constant); |
780 | 780 |
781 if (obj->is_a(HotSpotKlassOop::klass())) { | 781 if (obj->is_a(HotSpotKlassOop::klass())) { |
782 assert(!obj.is_null(), ""); | 782 assert(!obj.is_null(), ""); |
783 *((jobject*) operand) = JNIHandles::make_local(java_lang_Class::as_klassOop(HotSpotKlassOop::javaMirror(obj))); | 783 oop type = HotSpotKlassOop::type(obj); |
784 klassOop klass = java_lang_Class::as_klassOop(HotSpotResolvedJavaType::javaMirror(type)); | |
785 *((jobject*) operand) = JNIHandles::make_local(klass); | |
784 _instructions->relocate(instruction, oop_Relocation::spec_for_immediate(), Assembler::imm_operand); | 786 _instructions->relocate(instruction, oop_Relocation::spec_for_immediate(), Assembler::imm_operand); |
785 TRACE_graal_3("relocating (HotSpotJavaType) at %016x/%016x", instruction, operand); | 787 TRACE_graal_3("relocating (HotSpotJavaType) at %016x/%016x", instruction, operand); |
786 } else { | 788 } else { |
787 jobject value = JNIHandles::make_local(obj()); | 789 jobject value = JNIHandles::make_local(obj()); |
788 if (obj() == HotSpotProxy::DUMMY_CONSTANT_OBJ()) { | 790 if (obj() == HotSpotProxy::DUMMY_CONSTANT_OBJ()) { |