< prev index next >

src/hotspot/share/c1/c1_LIR.cpp

Print this page
@@ -793,11 +793,11 @@
  
        // TODO: check if these operands really have to be temp
        // (or if input is sufficient). This may have influence on the oop map!
        assert(opLock->_lock->is_valid(), "used");  do_temp(opLock->_lock);
        assert(opLock->_hdr->is_valid(),  "used");  do_temp(opLock->_hdr);
-       assert(opLock->_obj->is_valid(),  "used");  do_temp(opLock->_obj);
+       assert(opLock->_obj->is_valid(),  "used");  do_input(opLock->_obj); do_temp(opLock->_obj);
  
        if (opLock->_scratch->is_valid())           do_temp(opLock->_scratch);
        assert(opLock->_result->is_illegal(), "unused");
  
        do_stub(opLock->_stub);

@@ -885,10 +885,11 @@
        LIR_OpLoadKlass* opLoadKlass = op->as_OpLoadKlass();
        assert(opLoadKlass != NULL, "must be");
  
        do_input(opLoadKlass->_obj);
        do_output(opLoadKlass->_result);
+       do_stub(opLoadKlass->_stub);
        if (opLoadKlass->_info) do_info(opLoadKlass->_info);
        break;
      }
  
  

@@ -1065,10 +1066,11 @@
    }
  }
  
  void LIR_OpLoadKlass::emit_code(LIR_Assembler* masm) {
    masm->emit_load_klass(this);
+   masm->append_code_stub(stub());
  }
  
  #ifdef ASSERT
  void LIR_OpAssert::emit_code(LIR_Assembler* masm) {
    masm->emit_assert(this);

@@ -2033,10 +2035,11 @@
  }
  
  void LIR_OpLoadKlass::print_instr(outputStream* out) const {
    obj()->print(out);        out->print(" ");
    result_opr()->print(out); out->print(" ");
+   out->print("[lbl:" INTPTR_FORMAT "]", p2i(stub()->entry()));
  }
  
  #ifdef ASSERT
  void LIR_OpAssert::print_instr(outputStream* out) const {
    print_condition(out, condition()); out->print(" ");
< prev index next >