< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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

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