< prev index next >

src/cpu/sparc/vm/templateTable_sparc.cpp

Print this page

@@ -3239,13 +3239,11 @@
   __ ldub(G3_scratch, Roffset, G3_scratch);
   __ cmp(G3_scratch, JVM_CONSTANT_Class);
   __ br(Assembler::notEqual, false, Assembler::pn, slow_case);
   __ delayed()->sll(Roffset, LogBytesPerWord, Roffset);
   // get InstanceKlass
-  //__ sll(Roffset, LogBytesPerWord, Roffset);        // executed in delay slot
-  __ add(Roffset, sizeof(ConstantPool), Roffset);
-  __ ld_ptr(Rscratch, Roffset, RinstanceKlass);
+  __ load_resolved_klass_at_offset(Rscratch, Roffset, RinstanceKlass);
 
   // make sure klass is fully initialized:
   __ ldub(RinstanceKlass, in_bytes(InstanceKlass::init_state_offset()), G3_scratch);
   __ cmp(G3_scratch, InstanceKlass::fully_initialized);
   __ br(Assembler::notEqual, false, Assembler::pn, slow_case);

@@ -3463,12 +3461,13 @@
 
   __ ba_short(resolved);
 
   // Extract target class from constant pool
   __ bind(quicked);
-  __ add(Roffset, sizeof(ConstantPool), Roffset);
-  __ ld_ptr(Lscratch, Roffset, RspecifiedKlass);
+  __ load_resolved_klass_at_offset(Lscratch, Roffset, RspecifiedKlass);
+
+
   __ bind(resolved);
   __ load_klass(Otos_i, RobjKlass); // get value klass
 
   // Generate a fast subtype check.  Branch to cast_ok if no
   // failure.  Throw exception if failure.

@@ -3520,13 +3519,13 @@
 
   __ ba_short(resolved);
 
   // Extract target class from constant pool
   __ bind(quicked);
-  __ add(Roffset, sizeof(ConstantPool), Roffset);
   __ get_constant_pool(Lscratch);
-  __ ld_ptr(Lscratch, Roffset, RspecifiedKlass);
+  __ load_resolved_klass_at_offset(Lscratch, Roffset, RspecifiedKlass);
+
   __ bind(resolved);
   __ load_klass(Otos_i, RobjKlass); // get value klass
 
   // Generate a fast subtype check.  Branch to cast_ok if no
   // failure.  Return 0 if failure.
< prev index next >