hotspot/src/share/vm/c1/c1_LIR.cpp
changeset 20702 bbe0fcde6e13
parent 18507 61bfc8995bb3
child 21102 1dd11ccfe9da
equal deleted inserted replaced
20701:ef9996662fd5 20702:bbe0fcde6e13
   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) {