< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

3069 
3070         // Already unknown: Nothing to do anymore.
3071         __ z_tmll(tmp2, TypeEntries::type_unknown);
3072         __ z_brc(Assembler::bcondAllOne, next);
3073         __ z_oill(tmp2, TypeEntries::type_unknown);
3074         __ z_bru(do_update);
3075       }
3076     }
3077 
3078     __ bind(init_klass);
3079     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3080     __ z_ogr(tmp2, tmp1);
3081 
3082     __ bind(do_update);
3083     __ z_stg(tmp2, mdo_addr);
3084 
3085     __ bind(next);
3086   }
3087 }
3088 




3089 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3090   assert(op->crc()->is_single_cpu(), "crc must be register");
3091   assert(op->val()->is_single_cpu(), "byte value must be register");
3092   assert(op->result_opr()->is_single_cpu(), "result must be register");
3093   Register crc = op->crc()->as_register();
3094   Register val = op->val()->as_register();
3095   Register res = op->result_opr()->as_register();
3096 
3097   assert_different_registers(val, crc, res);
3098 
3099   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3100   __ kernel_crc32_singleByteReg(crc, val, res, true);
3101   __ z_lgfr(res, crc);
3102 }
3103 
3104 #undef __

3069 
3070         // Already unknown: Nothing to do anymore.
3071         __ z_tmll(tmp2, TypeEntries::type_unknown);
3072         __ z_brc(Assembler::bcondAllOne, next);
3073         __ z_oill(tmp2, TypeEntries::type_unknown);
3074         __ z_bru(do_update);
3075       }
3076     }
3077 
3078     __ bind(init_klass);
3079     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3080     __ z_ogr(tmp2, tmp1);
3081 
3082     __ bind(do_update);
3083     __ z_stg(tmp2, mdo_addr);
3084 
3085     __ bind(next);
3086   }
3087 }
3088 
3089 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3090   Unimplemented();
3091 }
3092 
3093 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3094   assert(op->crc()->is_single_cpu(), "crc must be register");
3095   assert(op->val()->is_single_cpu(), "byte value must be register");
3096   assert(op->result_opr()->is_single_cpu(), "result must be register");
3097   Register crc = op->crc()->as_register();
3098   Register val = op->val()->as_register();
3099   Register res = op->result_opr()->as_register();
3100 
3101   assert_different_registers(val, crc, res);
3102 
3103   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3104   __ kernel_crc32_singleByteReg(crc, val, res, true);
3105   __ z_lgfr(res, crc);
3106 }
3107 
3108 #undef __
< prev index next >