< prev index next >

src/hotspot/share/c1/c1_LIRGenerator.cpp

Print this page
*** 1230,11 ***
                                       NULL); // NULL CodeEmitInfo results in a leaf call
    __ move(call_result, result);
  }
  
  void LIRGenerator::load_klass(LIR_Opr obj, LIR_Opr klass, CodeEmitInfo* null_check_info) {
!   __ load_klass(obj, klass, null_check_info);
  }
  
  // Example: object.getClass ()
  void LIRGenerator::do_getClass(Intrinsic* x) {
    assert(x->number_of_arguments() == 1, "wrong type");
--- 1230,13 ---
                                       NULL); // NULL CodeEmitInfo results in a leaf call
    __ move(call_result, result);
  }
  
  void LIRGenerator::load_klass(LIR_Opr obj, LIR_Opr klass, CodeEmitInfo* null_check_info) {
!   CodeStub* slow_path = new LoadKlassStub(obj, klass);
+   __ load_klass(obj, klass, null_check_info, slow_path);
+   __ branch_destination(slow_path->continuation());
  }
  
  // Example: object.getClass ()
  void LIRGenerator::do_getClass(Intrinsic* x) {
    assert(x->number_of_arguments() == 1, "wrong type");
< prev index next >