< prev index next > src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp
Print this page
__ ldr(dest->as_register(), as_Address(addr));
}
break;
case T_ADDRESS:
- if (UseCompressedClassPointers && addr->disp() == oopDesc::klass_offset_in_bytes()) {
- __ ldr_u32(dest->as_pointer_register(), as_Address(addr));
- } else {
- __ ldr(dest->as_pointer_register(), as_Address(addr));
- }
+ __ ldr(dest->as_pointer_register(), as_Address(addr));
break;
case T_INT:
#ifdef __SOFTFP__
case T_FLOAT:
ShouldNotReachHere();
}
__ bind(*op->stub()->continuation());
}
+ void LIR_Assembler::emit_load_klass(LIR_OpLoadKlass* op) {
+ Register obj = op->obj()->as_pointer_register();
+ Register result = op->result_opr()->as_pointer_register();
+
+ CodeEmitInfo* info = op->info();
+ if (info != NULL) {
+ add_debug_info_for_null_check_here(info);
+ }
+
+ if (UseCompressedClassPointers) { // On 32 bit arm??
+ __ ldr_u32(result, Address(obj, oopDesc::klass_offset_in_bytes()));
+ } else {
+ __ ldr(result, Address(obj, oopDesc::klass_offset_in_bytes()));
+ }
+ }
void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
ciMethod* method = op->profiled_method();
int bci = op->profiled_bci();
ciMethod* callee = op->profiled_callee();
< prev index next >