src/share/vm/c1/c1_LIR.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/c1/c1_LIR.cpp	Wed Oct  2 17:55:37 2013
--- new/src/share/vm/c1/c1_LIR.cpp	Wed Oct  2 17:55:37 2013

*** 999,1008 **** --- 999,1019 ---- if (opProfileCall->_recv->is_valid()) do_temp(opProfileCall->_recv); assert(opProfileCall->_mdo->is_valid(), "used"); do_temp(opProfileCall->_mdo); assert(opProfileCall->_tmp1->is_valid(), "used"); do_temp(opProfileCall->_tmp1); break; } + + // LIR_OpProfileType: + case lir_profile_type: { + assert(op->as_OpProfileType() != NULL, "must be"); + LIR_OpProfileType* opProfileType = (LIR_OpProfileType*)op; + + do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp); + do_input(opProfileType->_obj); + do_temp(opProfileType->_tmp); + break; + } default: ShouldNotReachHere(); } }
*** 1149,1158 **** --- 1160,1173 ---- void LIR_OpProfileCall::emit_code(LIR_Assembler* masm) { masm->emit_profile_call(this); } + void LIR_OpProfileType::emit_code(LIR_Assembler* masm) { + masm->emit_profile_type(this); + } + // LIR_List LIR_List::LIR_List(Compilation* compilation, BlockBegin* block) : _operations(8) , _compilation(compilation) #ifndef PRODUCT
*** 1801,1810 **** --- 1816,1827 ---- case lir_cas_long: s = "cas_long"; break; case lir_cas_obj: s = "cas_obj"; break; case lir_cas_int: s = "cas_int"; break; // LIR_OpProfileCall case lir_profile_call: s = "profile_call"; break; + // LIR_OpProfileType + case lir_profile_type: s = "profile_type"; break; // LIR_OpAssert #ifdef ASSERT case lir_assert: s = "assert"; break; #endif case lir_none: ShouldNotReachHere();break;
*** 2084,2093 **** --- 2101,2119 ---- mdo()->print(out); out->print(" "); recv()->print(out); out->print(" "); tmp1()->print(out); out->print(" "); } + // LIR_OpProfileType + void LIR_OpProfileType::print_instr(outputStream* out) const { + out->print("exact = "); exact_klass()->print_name_on(out); + out->print("current = "); ciTypeEntries::print_ciklass(out, current_klass()); + mdp()->print(out); out->print(" "); + obj()->print(out); out->print(" "); + tmp()->print(out); out->print(" "); + } + #endif // PRODUCT // Implementation of LIR_InsertionBuffer void LIR_InsertionBuffer::append(int index, LIR_Op* op) {

src/share/vm/c1/c1_LIR.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File