src/share/vm/c1/c1_LIR.cpp

changeset 5914
d13d7aba8c12
parent 5353
b800986664f4
child 5994
9acbfe04b5c3
equal deleted inserted replaced
5913:46ef27bcacb3 5914:d13d7aba8c12
999 if (opProfileCall->_recv->is_valid()) do_temp(opProfileCall->_recv); 999 if (opProfileCall->_recv->is_valid()) do_temp(opProfileCall->_recv);
1000 assert(opProfileCall->_mdo->is_valid(), "used"); do_temp(opProfileCall->_mdo); 1000 assert(opProfileCall->_mdo->is_valid(), "used"); do_temp(opProfileCall->_mdo);
1001 assert(opProfileCall->_tmp1->is_valid(), "used"); do_temp(opProfileCall->_tmp1); 1001 assert(opProfileCall->_tmp1->is_valid(), "used"); do_temp(opProfileCall->_tmp1);
1002 break; 1002 break;
1003 } 1003 }
1004
1005 // LIR_OpProfileType:
1006 case lir_profile_type: {
1007 assert(op->as_OpProfileType() != NULL, "must be");
1008 LIR_OpProfileType* opProfileType = (LIR_OpProfileType*)op;
1009
1010 do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp);
1011 do_input(opProfileType->_obj);
1012 do_temp(opProfileType->_tmp);
1013 break;
1014 }
1004 default: 1015 default:
1005 ShouldNotReachHere(); 1016 ShouldNotReachHere();
1006 } 1017 }
1007 } 1018 }
1008 1019
1147 masm->emit_delay(this); 1158 masm->emit_delay(this);
1148 } 1159 }
1149 1160
1150 void LIR_OpProfileCall::emit_code(LIR_Assembler* masm) { 1161 void LIR_OpProfileCall::emit_code(LIR_Assembler* masm) {
1151 masm->emit_profile_call(this); 1162 masm->emit_profile_call(this);
1163 }
1164
1165 void LIR_OpProfileType::emit_code(LIR_Assembler* masm) {
1166 masm->emit_profile_type(this);
1152 } 1167 }
1153 1168
1154 // LIR_List 1169 // LIR_List
1155 LIR_List::LIR_List(Compilation* compilation, BlockBegin* block) 1170 LIR_List::LIR_List(Compilation* compilation, BlockBegin* block)
1156 : _operations(8) 1171 : _operations(8)
1801 case lir_cas_long: s = "cas_long"; break; 1816 case lir_cas_long: s = "cas_long"; break;
1802 case lir_cas_obj: s = "cas_obj"; break; 1817 case lir_cas_obj: s = "cas_obj"; break;
1803 case lir_cas_int: s = "cas_int"; break; 1818 case lir_cas_int: s = "cas_int"; break;
1804 // LIR_OpProfileCall 1819 // LIR_OpProfileCall
1805 case lir_profile_call: s = "profile_call"; break; 1820 case lir_profile_call: s = "profile_call"; break;
1821 // LIR_OpProfileType
1822 case lir_profile_type: s = "profile_type"; break;
1806 // LIR_OpAssert 1823 // LIR_OpAssert
1807 #ifdef ASSERT 1824 #ifdef ASSERT
1808 case lir_assert: s = "assert"; break; 1825 case lir_assert: s = "assert"; break;
1809 #endif 1826 #endif
1810 case lir_none: ShouldNotReachHere();break; 1827 case lir_none: ShouldNotReachHere();break;
2084 mdo()->print(out); out->print(" "); 2101 mdo()->print(out); out->print(" ");
2085 recv()->print(out); out->print(" "); 2102 recv()->print(out); out->print(" ");
2086 tmp1()->print(out); out->print(" "); 2103 tmp1()->print(out); out->print(" ");
2087 } 2104 }
2088 2105
2106 // LIR_OpProfileType
2107 void LIR_OpProfileType::print_instr(outputStream* out) const {
2108 out->print("exact = "); exact_klass()->print_name_on(out);
2109 out->print("current = "); ciTypeEntries::print_ciklass(out, current_klass());
2110 mdp()->print(out); out->print(" ");
2111 obj()->print(out); out->print(" ");
2112 tmp()->print(out); out->print(" ");
2113 }
2114
2089 #endif // PRODUCT 2115 #endif // PRODUCT
2090 2116
2091 // Implementation of LIR_InsertionBuffer 2117 // Implementation of LIR_InsertionBuffer
2092 2118
2093 void LIR_InsertionBuffer::append(int index, LIR_Op* op) { 2119 void LIR_InsertionBuffer::append(int index, LIR_Op* op) {

mercurial