< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

3004 
3005         // Already unknown: Nothing to do anymore.
3006         __ z_tmll(tmp2, TypeEntries::type_unknown);
3007         __ z_brc(Assembler::bcondAllOne, next);
3008         __ z_oill(tmp2, TypeEntries::type_unknown);
3009         __ z_bru(do_update);
3010       }
3011     }
3012 
3013     __ bind(init_klass);
3014     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3015     __ z_ogr(tmp2, tmp1);
3016 
3017     __ bind(do_update);
3018     __ z_stg(tmp2, mdo_addr);
3019 
3020     __ bind(next);
3021   }
3022 }
3023 




3024 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3025   assert(op->crc()->is_single_cpu(), "crc must be register");
3026   assert(op->val()->is_single_cpu(), "byte value must be register");
3027   assert(op->result_opr()->is_single_cpu(), "result must be register");
3028   Register crc = op->crc()->as_register();
3029   Register val = op->val()->as_register();
3030   Register res = op->result_opr()->as_register();
3031 
3032   assert_different_registers(val, crc, res);
3033 
3034   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3035   __ kernel_crc32_singleByteReg(crc, val, res, true);
3036   __ z_lgfr(res, crc);
3037 }
3038 






















3039 #undef __

3004 
3005         // Already unknown: Nothing to do anymore.
3006         __ z_tmll(tmp2, TypeEntries::type_unknown);
3007         __ z_brc(Assembler::bcondAllOne, next);
3008         __ z_oill(tmp2, TypeEntries::type_unknown);
3009         __ z_bru(do_update);
3010       }
3011     }
3012 
3013     __ bind(init_klass);
3014     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3015     __ z_ogr(tmp2, tmp1);
3016 
3017     __ bind(do_update);
3018     __ z_stg(tmp2, mdo_addr);
3019 
3020     __ bind(next);
3021   }
3022 }
3023 
3024 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3025   Unimplemented();
3026 }
3027 
3028 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3029   assert(op->crc()->is_single_cpu(), "crc must be register");
3030   assert(op->val()->is_single_cpu(), "byte value must be register");
3031   assert(op->result_opr()->is_single_cpu(), "result must be register");
3032   Register crc = op->crc()->as_register();
3033   Register val = op->val()->as_register();
3034   Register res = op->result_opr()->as_register();
3035 
3036   assert_different_registers(val, crc, res);
3037 
3038   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3039   __ kernel_crc32_singleByteReg(crc, val, res, true);
3040   __ z_lgfr(res, crc);
3041 }
3042 
3043 // Valhalla support
3044 
3045 void LIR_Assembler::check_orig_pc() {
3046   Unimplemented();
3047 }
3048 
3049 int LIR_Assembler::store_inline_type_fields_to_buf(ciInlineKlass* vk) {
3050   Unimplemented();
3051   return 0;
3052 }
3053 
3054 void LIR_Assembler::emit_opFlattenedArrayCheck(LIR_OpFlattenedArrayCheck* op) {
3055   Unimplemented();
3056 }
3057 
3058 void LIR_Assembler::emit_opNullFreeArrayCheck(LIR_OpNullFreeArrayCheck* op) {
3059   Unimplemented();
3060 }
3061 
3062 void LIR_Assembler::emit_opSubstitutabilityCheck(LIR_OpSubstitutabilityCheck* op) {
3063   Unimplemented();
3064 }
3065 #undef __
< prev index next >