< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

3042 
3043         // Already unknown: Nothing to do anymore.
3044         __ z_tmll(tmp2, TypeEntries::type_unknown);
3045         __ z_brc(Assembler::bcondAllOne, next);
3046         __ z_oill(tmp2, TypeEntries::type_unknown);
3047         __ z_bru(do_update);
3048       }
3049     }
3050 
3051     __ bind(init_klass);
3052     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3053     __ z_ogr(tmp2, tmp1);
3054 
3055     __ bind(do_update);
3056     __ z_stg(tmp2, mdo_addr);
3057 
3058     __ bind(next);
3059   }
3060 }
3061 




3062 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3063   assert(op->crc()->is_single_cpu(), "crc must be register");
3064   assert(op->val()->is_single_cpu(), "byte value must be register");
3065   assert(op->result_opr()->is_single_cpu(), "result must be register");
3066   Register crc = op->crc()->as_register();
3067   Register val = op->val()->as_register();
3068   Register res = op->result_opr()->as_register();
3069 
3070   assert_different_registers(val, crc, res);
3071 
3072   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3073   __ kernel_crc32_singleByteReg(crc, val, res, true);
3074   __ z_lgfr(res, crc);
3075 }
3076 
3077 #undef __

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