< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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






















3042 #undef __

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