hotspot/src/share/vm/c1/c1_LIR.hpp
changeset 5687 b862d1f189bd
parent 5420 586d3988e72b
child 5695 7fbbde5b4e3e
equal deleted inserted replaced
5686:5435e77aa3df 5687:b862d1f189bd
  1031 // --------------------------------------------------
  1031 // --------------------------------------------------
  1032 class LIR_OpJavaCall: public LIR_OpCall {
  1032 class LIR_OpJavaCall: public LIR_OpCall {
  1033  friend class LIR_OpVisitState;
  1033  friend class LIR_OpVisitState;
  1034 
  1034 
  1035  private:
  1035  private:
  1036   ciMethod*       _method;
  1036   ciMethod* _method;
  1037   LIR_Opr         _receiver;
  1037   LIR_Opr   _receiver;
       
  1038   LIR_Opr   _method_handle_invoke_SP_save_opr;  // Used in LIR_OpVisitState::visit to store the reference to FrameMap::method_handle_invoke_SP_save_opr.
  1038 
  1039 
  1039  public:
  1040  public:
  1040   LIR_OpJavaCall(LIR_Code code, ciMethod* method,
  1041   LIR_OpJavaCall(LIR_Code code, ciMethod* method,
  1041                  LIR_Opr receiver, LIR_Opr result,
  1042                  LIR_Opr receiver, LIR_Opr result,
  1042                  address addr, LIR_OprList* arguments,
  1043                  address addr, LIR_OprList* arguments,
  1043                  CodeEmitInfo* info)
  1044                  CodeEmitInfo* info)
  1044   : LIR_OpCall(code, addr, result, arguments, info)
  1045   : LIR_OpCall(code, addr, result, arguments, info)
  1045   , _receiver(receiver)
  1046   , _receiver(receiver)
  1046   , _method(method)          { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); }
  1047   , _method(method)
       
  1048   , _method_handle_invoke_SP_save_opr(LIR_OprFact::illegalOpr)
       
  1049   { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); }
  1047 
  1050 
  1048   LIR_OpJavaCall(LIR_Code code, ciMethod* method,
  1051   LIR_OpJavaCall(LIR_Code code, ciMethod* method,
  1049                  LIR_Opr receiver, LIR_Opr result, intptr_t vtable_offset,
  1052                  LIR_Opr receiver, LIR_Opr result, intptr_t vtable_offset,
  1050                  LIR_OprList* arguments, CodeEmitInfo* info)
  1053                  LIR_OprList* arguments, CodeEmitInfo* info)
  1051   : LIR_OpCall(code, (address)vtable_offset, result, arguments, info)
  1054   : LIR_OpCall(code, (address)vtable_offset, result, arguments, info)
  1052   , _receiver(receiver)
  1055   , _receiver(receiver)
  1053   , _method(method)          { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); }
  1056   , _method(method)
       
  1057   , _method_handle_invoke_SP_save_opr(LIR_OprFact::illegalOpr)
       
  1058   { assert(is_in_range(code, begin_opJavaCall, end_opJavaCall), "code check"); }
  1054 
  1059 
  1055   LIR_Opr receiver() const                       { return _receiver; }
  1060   LIR_Opr receiver() const                       { return _receiver; }
  1056   ciMethod* method() const                       { return _method;   }
  1061   ciMethod* method() const                       { return _method;   }
  1057 
  1062 
  1058   // JSR 292 support.
  1063   // JSR 292 support.