hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp
changeset 13969 d2a189b83b87
parent 13728 882756847a04
child 14631 526804361522
--- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp	Mon Oct 08 17:04:00 2012 -0700
+++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp	Tue Oct 09 10:11:38 2012 +0200
@@ -97,8 +97,8 @@
     jint inst2;
     guarantee(Assembler::inv_op2(inst)==Assembler::sethi_op2, "must be sethi");
     if (format() != 0) {
-      assert(type() == relocInfo::oop_type, "only narrow oops case");
-      jint np = oopDesc::encode_heap_oop((oop)x);
+      assert(type() == relocInfo::oop_type || type() == relocInfo::metadata_type, "only narrow oops or klasses case");
+      jint np = type() == relocInfo::oop_type ? oopDesc::encode_heap_oop((oop)x) : oopDesc::encode_klass((Klass*)x);
       inst &= ~Assembler::hi22(-1);
       inst |=  Assembler::hi22((intptr_t)np);
       if (verify_only) {