< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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






















3090 #undef __

3055 
3056         // Already unknown: Nothing to do anymore.
3057         __ z_tmll(tmp2, TypeEntries::type_unknown);
3058         __ z_brc(Assembler::bcondAllOne, next);
3059         __ z_oill(tmp2, TypeEntries::type_unknown);
3060         __ z_bru(do_update);
3061       }
3062     }
3063 
3064     __ bind(init_klass);
3065     // Combine klass and null_seen bit (only used if (tmp & type_mask)==0).
3066     __ z_ogr(tmp2, tmp1);
3067 
3068     __ bind(do_update);
3069     __ z_stg(tmp2, mdo_addr);
3070 
3071     __ bind(next);
3072   }
3073 }
3074 
3075 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
3076   Unimplemented();
3077 }
3078 
3079 void LIR_Assembler::emit_updatecrc32(LIR_OpUpdateCRC32* op) {
3080   assert(op->crc()->is_single_cpu(), "crc must be register");
3081   assert(op->val()->is_single_cpu(), "byte value must be register");
3082   assert(op->result_opr()->is_single_cpu(), "result must be register");
3083   Register crc = op->crc()->as_register();
3084   Register val = op->val()->as_register();
3085   Register res = op->result_opr()->as_register();
3086 
3087   assert_different_registers(val, crc, res);
3088 
3089   __ load_const_optimized(res, StubRoutines::crc_table_addr());
3090   __ kernel_crc32_singleByteReg(crc, val, res, true);
3091   __ z_lgfr(res, crc);
3092 }
3093 
3094 // Valhalla support
3095 
3096 void LIR_Assembler::check_orig_pc() {
3097   Unimplemented();
3098 }
3099 
3100 int LIR_Assembler::store_inline_type_fields_to_buf(ciInlineKlass* vk) {
3101   Unimplemented();
3102   return 0;
3103 }
3104 
3105 void LIR_Assembler::emit_opFlattenedArrayCheck(LIR_OpFlattenedArrayCheck* op) {
3106   Unimplemented();
3107 }
3108 
3109 void LIR_Assembler::emit_opNullFreeArrayCheck(LIR_OpNullFreeArrayCheck* op) {
3110   Unimplemented();
3111 }
3112 
3113 void LIR_Assembler::emit_opSubstitutabilityCheck(LIR_OpSubstitutabilityCheck* op) {
3114   Unimplemented();
3115 }
3116 #undef __
< prev index next >