< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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

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