diff -r 8c9029c01470 -r d2a189b83b87 hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp --- 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) {