< prev index next >

src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp

Print this page

3141                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3142 
3143         // Already unknown. Nothing to do anymore.
3144         __ andi_(R0, tmp, TypeEntries::type_unknown);
3145         __ bne(CR0, Lnext);
3146 
3147         // Different than before. Cannot keep accurate profile.
3148         __ ori(R0, tmp, TypeEntries::type_unknown);
3149       }
3150     }
3151 
3152     __ bind(Ldo_update);
3153     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3154 
3155     __ bind(Lnext);
3156     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3157   }
3158   __ bind(Ldone);
3159 }
3160 



3161 
3162 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3163   assert(op->crc()->is_single_cpu(), "crc must be register");
3164   assert(op->val()->is_single_cpu(), "byte value must be register");
3165   assert(op->result_opr()->is_single_cpu(), "result must be register");
3166   Register crc = op->crc()->as_register();
3167   Register val = op->val()->as_register();
3168   Register res = op->result_opr()->as_register();
3169 
3170   assert_different_registers(val, crc, res);
3171 
3172   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3173   __ kernel_crc32_singleByteReg(crc, val, res, true);
3174   __ mr(res, crc);
3175 }
3176 
3177 #undef __

3141                ciTypeEntries::valid_ciklass(current_klass) != exact_klass, "inconsistent");
3142 
3143         // Already unknown. Nothing to do anymore.
3144         __ andi_(R0, tmp, TypeEntries::type_unknown);
3145         __ bne(CR0, Lnext);
3146 
3147         // Different than before. Cannot keep accurate profile.
3148         __ ori(R0, tmp, TypeEntries::type_unknown);
3149       }
3150     }
3151 
3152     __ bind(Ldo_update);
3153     __ std(R0, index_or_disp(mdo_addr), mdo_addr->base()->as_pointer_register());
3154 
3155     __ bind(Lnext);
3156     if (klass_reg_used) { __ load_const_optimized(R29_TOC, MacroAssembler::global_toc(), R0); } // reinit
3157   }
3158   __ bind(Ldone);
3159 }
3160 
3161 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3162   Unimplemented();
3163 }
3164 
3165 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3166   assert(op->crc()->is_single_cpu(), "crc must be register");
3167   assert(op->val()->is_single_cpu(), "byte value must be register");
3168   assert(op->result_opr()->is_single_cpu(), "result must be register");
3169   Register crc = op->crc()->as_register();
3170   Register val = op->val()->as_register();
3171   Register res = op->result_opr()->as_register();
3172 
3173   assert_different_registers(val, crc, res);
3174 
3175   __ load_const_optimized(res, StubRoutines::crc_table_addr(), R0);
3176   __ kernel_crc32_singleByteReg(crc, val, res, true);
3177   __ mr(res, crc);
3178 }
3179 
3180 #undef __
< prev index next >