< prev index next >

src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp

Print this page

3182                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3183 
3184         // Already unknown. Nothing to do anymore.
3185         __ andi_(R0, tmp, TypeEntries::type_unknown);
3186         __ bne(CCR0, Lnext);
3187 
3188         // Different than before. Cannot keep accurate profile.
3189         __ ori(R0, tmp, TypeEntries::type_unknown);
3190       }
3191     }
3192 
3193     __ bind(Ldo_update);
3194     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3195 
3196     __ bind(Lnext);
3197     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3198   }
3199   __ bind(Ldone);
3200 }
3201 



3202 
3203 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3204   assert(op->crc()->is_single_cpu(), "crc must be register");
3205   assert(op->val()->is_single_cpu(), "byte value must be register");
3206   assert(op->result_opr()->is_single_cpu(), "result must be register");
3207   Register crc = op->crc()->as_register();
3208   Register val = op->val()->as_register();
3209   Register res = op->result_opr()->as_register();
3210 
3211   assert_different_registers(val, crc, res);
3212 
3213   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3214   __ kernel_crc32_singleByteReg(crc, val, res, true);
3215   __ mr(res, crc);
3216 }
3217 
3218 #undef __

3182                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3183 
3184         // Already unknown. Nothing to do anymore.
3185         __ andi_(R0, tmp, TypeEntries::type_unknown);
3186         __ bne(CCR0, Lnext);
3187 
3188         // Different than before. Cannot keep accurate profile.
3189         __ ori(R0, tmp, TypeEntries::type_unknown);
3190       }
3191     }
3192 
3193     __ bind(Ldo_update);
3194     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3195 
3196     __ bind(Lnext);
3197     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3198   }
3199   __ bind(Ldone);
3200 }
3201 
3202 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3203   Unimplemented();
3204 }
3205 
3206 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3207   assert(op->crc()->is_single_cpu(), "crc must be register");
3208   assert(op->val()->is_single_cpu(), "byte value must be register");
3209   assert(op->result_opr()->is_single_cpu(), "result must be register");
3210   Register crc = op->crc()->as_register();
3211   Register val = op->val()->as_register();
3212   Register res = op->result_opr()->as_register();
3213 
3214   assert_different_registers(val, crc, res);
3215 
3216   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3217   __ kernel_crc32_singleByteReg(crc, val, res, true);
3218   __ mr(res, crc);
3219 }
3220 
3221 #undef __
< prev index next >