< prev index next >

src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp

Print this page

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



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

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