< prev index next >

src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp

Print this page

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




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

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