< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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

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