< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

3058 
3059         // Already unknown: Nothing to do anymore.
3060         __ z_tmll(tmp2, TypeEntries::type_unknown);
3061         __ z_brc(Assembler::bcondAllOne, next);
3062         __ z_oill(tmp2, TypeEntries::type_unknown);
3063         __ z_bru(do_update);
3064       }
3065     }
3066 
3067     __ bind(init_klass);
3068     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3069     __ z_ogr(tmp2, tmp1);
3070 
3071     __ bind(do_update);
3072     __ z_stg(tmp2, mdo_addr);
3073 
3074     __ bind(next);
3075   }
3076 }
3077 




3078 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3079   assert(op->crc()->is_single_cpu(), "crc must be register");
3080   assert(op->val()->is_single_cpu(), "byte value must be register");
3081   assert(op->result_opr()->is_single_cpu(), "result must be register");
3082   Register crc = op->crc()->as_register();
3083   Register val = op->val()->as_register();
3084   Register res = op->result_opr()->as_register();
3085 
3086   assert_different_registers(val, crc, res);
3087 
3088   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3089   __ kernel_crc32_singleByteReg(crc, val, res, true);
3090   __ z_lgfr(res, crc);
3091 }
3092 
3093 #undef __

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