< prev index next >
src/cpu/arm/vm/templateTable_arm.cpp
Print this page
@@ -4370,14 +4370,13 @@
// use Rklass as a scratch
volatile_barrier(MacroAssembler::LoadLoad, Rklass);
#endif // AARCH64
// get InstanceKlass
- __ add(Rklass, Rcpool, AsmOperand(Rindex, lsl, LogBytesPerWord));
- __ ldr(Rklass, Address(Rklass, sizeof(ConstantPool)));
__ cmp(Rtemp, JVM_CONSTANT_Class);
__ b(slow_case, ne);
+ __ load_resolved_klass_at_offset(Rcpool, Rindex, Rklass);
// make sure klass is initialized & doesn't have finalizer
// make sure klass is fully initialized
__ ldrb(Rtemp, Address(Rklass, InstanceKlass::init_state_offset()));
__ cmp(Rtemp, InstanceKlass::fully_initialized);
@@ -4645,12 +4644,11 @@
__ mov(R2_ClassCastException_obj, Robj); // convention with generate_ClassCastException_handler()
__ b(Interpreter::_throw_ClassCastException_entry);
// Get superklass in Rsuper and subklass in Rsub
__ bind(quicked);
- __ add(Rtemp, Rcpool, AsmOperand(Rindex, lsl, LogBytesPerWord));
- __ ldr(Rsuper, Address(Rtemp, sizeof(ConstantPool)));
+ __ load_resolved_klass_at_offset(Rcpool, Rindex, Rsuper);
__ bind(resolved);
__ load_klass(Rsub, Robj);
// Generate subtype check. Blows both tmps and Rtemp.
@@ -4719,12 +4717,11 @@
__ pop_ptr(Robj);
__ b(resolved);
// Get superklass in Rsuper and subklass in Rsub
__ bind(quicked);
- __ add(Rtemp, Rcpool, AsmOperand(Rindex, lsl, LogBytesPerWord));
- __ ldr(Rsuper, Address(Rtemp, sizeof(ConstantPool)));
+ __ load_resolved_klass_at_offset(Rcpool, Rindex, Rsuper);
__ bind(resolved);
__ load_klass(Rsub, Robj);
// Generate subtype check. Blows both tmps and Rtemp.
< prev index next >