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