< prev index next >

src/share/vm/c1/c1_LIR.cpp

Print this page




 993     case lir_profile_call: {
 994       assert(op->as_OpProfileCall() != NULL, "must be");
 995       LIR_OpProfileCall* opProfileCall = (LIR_OpProfileCall*)op;
 996 
 997       if (opProfileCall->_recv->is_valid())              do_temp(opProfileCall->_recv);
 998       assert(opProfileCall->_mdo->is_valid(), "used");   do_temp(opProfileCall->_mdo);
 999       assert(opProfileCall->_tmp1->is_valid(), "used");  do_temp(opProfileCall->_tmp1);
1000       break;
1001     }
1002 
1003 // LIR_OpProfileType:
1004     case lir_profile_type: {
1005       assert(op->as_OpProfileType() != NULL, "must be");
1006       LIR_OpProfileType* opProfileType = (LIR_OpProfileType*)op;
1007 
1008       do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp);
1009       do_input(opProfileType->_obj);
1010       do_temp(opProfileType->_tmp);
1011       break;
1012     }









1013   default:
1014     ShouldNotReachHere();
1015   }
1016 }
1017 
1018 
1019 void LIR_OpVisitState::do_stub(CodeStub* stub) {
1020   if (stub != NULL) {
1021     stub->visit(this);
1022   }
1023 }
1024 
1025 XHandlers* LIR_OpVisitState::all_xhandler() {
1026   XHandlers* result = NULL;
1027 
1028   int i;
1029   for (i = 0; i < info_count(); i++) {
1030     if (info_at(i)->exception_handlers() != NULL) {
1031       result = info_at(i)->exception_handlers();
1032       break;


1091 void LIR_Op0::emit_code(LIR_Assembler* masm) {
1092   masm->emit_op0(this);
1093 }
1094 
1095 void LIR_Op1::emit_code(LIR_Assembler* masm) {
1096   masm->emit_op1(this);
1097 }
1098 
1099 void LIR_OpAllocObj::emit_code(LIR_Assembler* masm) {
1100   masm->emit_alloc_obj(this);
1101   masm->append_code_stub(stub());
1102 }
1103 
1104 void LIR_OpBranch::emit_code(LIR_Assembler* masm) {
1105   masm->emit_opBranch(this);
1106   if (stub()) {
1107     masm->append_code_stub(stub());
1108   }
1109 }
1110 




1111 void LIR_OpConvert::emit_code(LIR_Assembler* masm) {
1112   masm->emit_opConvert(this);
1113   if (stub() != NULL) {
1114     masm->append_code_stub(stub());
1115   }
1116 }
1117 
1118 void LIR_Op2::emit_code(LIR_Assembler* masm) {
1119   masm->emit_op2(this);
1120 }
1121 
1122 void LIR_OpAllocArray::emit_code(LIR_Assembler* masm) {
1123   masm->emit_alloc_array(this);
1124   masm->append_code_stub(stub());
1125 }
1126 
1127 void LIR_OpTypeCheck::emit_code(LIR_Assembler* masm) {
1128   masm->emit_opTypeCheck(this);
1129   if (stub()) {
1130     masm->append_code_stub(stub());


1799      case lir_arraycopy:             s = "arraycopy";     break;
1800      // LIR_OpUpdateCRC32
1801      case lir_updatecrc32:           s = "updatecrc32";   break;
1802      // LIR_OpLock
1803      case lir_lock:                  s = "lock";          break;
1804      case lir_unlock:                s = "unlock";        break;
1805      // LIR_OpDelay
1806      case lir_delay_slot:            s = "delay";         break;
1807      // LIR_OpTypeCheck
1808      case lir_instanceof:            s = "instanceof";    break;
1809      case lir_checkcast:             s = "checkcast";     break;
1810      case lir_store_check:           s = "store_check";   break;
1811      // LIR_OpCompareAndSwap
1812      case lir_cas_long:              s = "cas_long";      break;
1813      case lir_cas_obj:               s = "cas_obj";      break;
1814      case lir_cas_int:               s = "cas_int";      break;
1815      // LIR_OpProfileCall
1816      case lir_profile_call:          s = "profile_call";  break;
1817      // LIR_OpProfileType
1818      case lir_profile_type:          s = "profile_type";  break;

1819      // LIR_OpAssert
1820 #ifdef ASSERT
1821      case lir_assert:                s = "assert";        break;
1822 #endif
1823      case lir_none:                  ShouldNotReachHere();break;
1824     default:                         s = "illegal_op";    break;
1825   }
1826   return s;







1827 }
1828 
1829 // LIR_OpJavaCall
1830 void LIR_OpJavaCall::print_instr(outputStream* out) const {
1831   out->print("call: ");
1832   out->print("[addr: " INTPTR_FORMAT "]", p2i(address()));
1833   if (receiver()->is_valid()) {
1834     out->print(" [recv: ");   receiver()->print(out);   out->print("]");
1835   }
1836   if (result_opr()->is_valid()) {
1837     out->print(" [result: "); result_opr()->print(out); out->print("]");
1838   }
1839 }
1840 
1841 // LIR_OpLabel
1842 void LIR_OpLabel::print_instr(outputStream* out) const {
1843   out->print("[label:" INTPTR_FORMAT "]", p2i(_label));
1844 }
1845 
1846 // LIR_OpArrayCopy




 993     case lir_profile_call: {
 994       assert(op->as_OpProfileCall() != NULL, "must be");
 995       LIR_OpProfileCall* opProfileCall = (LIR_OpProfileCall*)op;
 996 
 997       if (opProfileCall->_recv->is_valid())              do_temp(opProfileCall->_recv);
 998       assert(opProfileCall->_mdo->is_valid(), "used");   do_temp(opProfileCall->_mdo);
 999       assert(opProfileCall->_tmp1->is_valid(), "used");  do_temp(opProfileCall->_tmp1);
1000       break;
1001     }
1002 
1003 // LIR_OpProfileType:
1004     case lir_profile_type: {
1005       assert(op->as_OpProfileType() != NULL, "must be");
1006       LIR_OpProfileType* opProfileType = (LIR_OpProfileType*)op;
1007 
1008       do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp);
1009       do_input(opProfileType->_obj);
1010       do_temp(opProfileType->_tmp);
1011       break;
1012     }
1013     case lir_shenandoah_wb: {
1014       assert(op->as_OpShenandoahWriteBarrier() != NULL, "must be");
1015       LIR_OpShenandoahWriteBarrier* opShenandoahWB = (LIR_OpShenandoahWriteBarrier*) op;
1016       do_input(opShenandoahWB->_opr);
1017       do_output(opShenandoahWB->_result);
1018       do_temp(opShenandoahWB->_tmp1);
1019       do_temp(opShenandoahWB->_tmp2);
1020       break;
1021     }
1022   default:
1023     ShouldNotReachHere();
1024   }
1025 }
1026 
1027 
1028 void LIR_OpVisitState::do_stub(CodeStub* stub) {
1029   if (stub != NULL) {
1030     stub->visit(this);
1031   }
1032 }
1033 
1034 XHandlers* LIR_OpVisitState::all_xhandler() {
1035   XHandlers* result = NULL;
1036 
1037   int i;
1038   for (i = 0; i < info_count(); i++) {
1039     if (info_at(i)->exception_handlers() != NULL) {
1040       result = info_at(i)->exception_handlers();
1041       break;


1100 void LIR_Op0::emit_code(LIR_Assembler* masm) {
1101   masm->emit_op0(this);
1102 }
1103 
1104 void LIR_Op1::emit_code(LIR_Assembler* masm) {
1105   masm->emit_op1(this);
1106 }
1107 
1108 void LIR_OpAllocObj::emit_code(LIR_Assembler* masm) {
1109   masm->emit_alloc_obj(this);
1110   masm->append_code_stub(stub());
1111 }
1112 
1113 void LIR_OpBranch::emit_code(LIR_Assembler* masm) {
1114   masm->emit_opBranch(this);
1115   if (stub()) {
1116     masm->append_code_stub(stub());
1117   }
1118 }
1119 
1120 void LIR_OpShenandoahWriteBarrier::emit_code(LIR_Assembler* masm) {
1121   masm->emit_opShenandoahWriteBarrier(this);
1122 }
1123 
1124 void LIR_OpConvert::emit_code(LIR_Assembler* masm) {
1125   masm->emit_opConvert(this);
1126   if (stub() != NULL) {
1127     masm->append_code_stub(stub());
1128   }
1129 }
1130 
1131 void LIR_Op2::emit_code(LIR_Assembler* masm) {
1132   masm->emit_op2(this);
1133 }
1134 
1135 void LIR_OpAllocArray::emit_code(LIR_Assembler* masm) {
1136   masm->emit_alloc_array(this);
1137   masm->append_code_stub(stub());
1138 }
1139 
1140 void LIR_OpTypeCheck::emit_code(LIR_Assembler* masm) {
1141   masm->emit_opTypeCheck(this);
1142   if (stub()) {
1143     masm->append_code_stub(stub());


1812      case lir_arraycopy:             s = "arraycopy";     break;
1813      // LIR_OpUpdateCRC32
1814      case lir_updatecrc32:           s = "updatecrc32";   break;
1815      // LIR_OpLock
1816      case lir_lock:                  s = "lock";          break;
1817      case lir_unlock:                s = "unlock";        break;
1818      // LIR_OpDelay
1819      case lir_delay_slot:            s = "delay";         break;
1820      // LIR_OpTypeCheck
1821      case lir_instanceof:            s = "instanceof";    break;
1822      case lir_checkcast:             s = "checkcast";     break;
1823      case lir_store_check:           s = "store_check";   break;
1824      // LIR_OpCompareAndSwap
1825      case lir_cas_long:              s = "cas_long";      break;
1826      case lir_cas_obj:               s = "cas_obj";      break;
1827      case lir_cas_int:               s = "cas_int";      break;
1828      // LIR_OpProfileCall
1829      case lir_profile_call:          s = "profile_call";  break;
1830      // LIR_OpProfileType
1831      case lir_profile_type:          s = "profile_type";  break;
1832   case lir_shenandoah_wb:            s = "shenandoah_wb"; break;
1833      // LIR_OpAssert
1834 #ifdef ASSERT
1835      case lir_assert:                s = "assert";        break;
1836 #endif
1837      case lir_none:                  ShouldNotReachHere();break;
1838     default:                         s = "illegal_op";    break;
1839   }
1840   return s;
1841 }
1842 
1843 void LIR_OpShenandoahWriteBarrier::print_instr(outputStream* out) const {
1844   out->print("[obj: "); in_opr()->print(out); out->print("]");
1845   out->print("[res: "); result_opr()->print(out); out->print("]");
1846   out->print("[tmp1: "); tmp1_opr()->print(out); out->print("]");
1847   out->print("[tmp2: "); tmp2_opr()->print(out); out->print("]");
1848 }
1849 
1850 // LIR_OpJavaCall
1851 void LIR_OpJavaCall::print_instr(outputStream* out) const {
1852   out->print("call: ");
1853   out->print("[addr: " INTPTR_FORMAT "]", p2i(address()));
1854   if (receiver()->is_valid()) {
1855     out->print(" [recv: ");   receiver()->print(out);   out->print("]");
1856   }
1857   if (result_opr()->is_valid()) {
1858     out->print(" [result: "); result_opr()->print(out); out->print("]");
1859   }
1860 }
1861 
1862 // LIR_OpLabel
1863 void LIR_OpLabel::print_instr(outputStream* out) const {
1864   out->print("[label:" INTPTR_FORMAT "]", p2i(_label));
1865 }
1866 
1867 // LIR_OpArrayCopy


< prev index next >