< prev index next >

src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp

Print this page

3106                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3107 
3108         // Already unknown. Nothing to do anymore.
3109         __ andi_(R0, tmp, TypeEntries::type_unknown);
3110         __ bne(CR0, Lnext);
3111 
3112         // Different than before. Cannot keep accurate profile.
3113         __ ori(R0, tmp, TypeEntries::type_unknown);
3114       }
3115     }
3116 
3117     __ bind(Ldo_update);
3118     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3119 
3120     __ bind(Lnext);
3121     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3122   }
3123   __ bind(Ldone);
3124 }
3125 



3126 
3127 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3128   assert(op->crc()->is_single_cpu(), "crc must be register");
3129   assert(op->val()->is_single_cpu(), "byte value must be register");
3130   assert(op->result_opr()->is_single_cpu(), "result must be register");
3131   Register crc = op->crc()->as_register();
3132   Register val = op->val()->as_register();
3133   Register res = op->result_opr()->as_register();
3134 
3135   assert_different_registers(val, crc, res);
3136 
3137   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3138   __ kernel_crc32_singleByteReg(crc, val, res, true);
3139   __ mr(res, crc);
3140 }
3141 
3142 #undef __

3106                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3107 
3108         // Already unknown. Nothing to do anymore.
3109         __ andi_(R0, tmp, TypeEntries::type_unknown);
3110         __ bne(CR0, Lnext);
3111 
3112         // Different than before. Cannot keep accurate profile.
3113         __ ori(R0, tmp, TypeEntries::type_unknown);
3114       }
3115     }
3116 
3117     __ bind(Ldo_update);
3118     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3119 
3120     __ bind(Lnext);
3121     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3122   }
3123   __ bind(Ldone);
3124 }
3125 
3126 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3127   Unimplemented();
3128 }
3129 
3130 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3131   assert(op->crc()->is_single_cpu(), "crc must be register");
3132   assert(op->val()->is_single_cpu(), "byte value must be register");
3133   assert(op->result_opr()->is_single_cpu(), "result must be register");
3134   Register crc = op->crc()->as_register();
3135   Register val = op->val()->as_register();
3136   Register res = op->result_opr()->as_register();
3137 
3138   assert_different_registers(val, crc, res);
3139 
3140   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3141   __ kernel_crc32_singleByteReg(crc, val, res, true);
3142   __ mr(res, crc);
3143 }
3144 
3145 #undef __
< prev index next >