src/share/vm/opto/callnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829187 Sdiff src/share/vm/opto

src/share/vm/opto/callnode.hpp

Print this page
rev 1082 : [mq]: indy.compiler.patch


 545 
 546   virtual uint match_edge(uint idx) const;
 547 
 548 #ifndef PRODUCT
 549   virtual void        dump_req()  const;
 550   virtual void        dump_spec(outputStream *st) const;
 551 #endif
 552 };
 553 
 554 
 555 //------------------------------CallJavaNode-----------------------------------
 556 // Make a static or dynamic subroutine call node using Java calling
 557 // convention.  (The "Java" calling convention is the compiler's calling
 558 // convention, as opposed to the interpreter's or that of native C.)
 559 class CallJavaNode : public CallNode {
 560 protected:
 561   virtual uint cmp( const Node &n ) const;
 562   virtual uint size_of() const; // Size is bigger
 563 
 564   bool    _optimized_virtual;

 565   ciMethod* _method;            // Method being direct called
 566 public:
 567   const int       _bci;         // Byte Code Index of call byte code
 568   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 569     : CallNode(tf, addr, TypePtr::BOTTOM),
 570       _method(method), _bci(bci), _optimized_virtual(false)


 571   {
 572     init_class_id(Class_CallJava);
 573   }
 574 
 575   virtual int   Opcode() const;
 576   ciMethod* method() const                { return _method; }
 577   void  set_method(ciMethod *m)           { _method = m; }
 578   void  set_optimized_virtual(bool f)     { _optimized_virtual = f; }
 579   bool  is_optimized_virtual() const      { return _optimized_virtual; }


 580 
 581 #ifndef PRODUCT
 582   virtual void  dump_spec(outputStream *st) const;
 583 #endif
 584 };
 585 
 586 //------------------------------CallStaticJavaNode-----------------------------
 587 // Make a direct subroutine call using Java calling convention (for static
 588 // calls and optimized virtual calls, plus calls to wrappers for run-time
 589 // routines); generates static stub.
 590 class CallStaticJavaNode : public CallJavaNode {
 591   virtual uint cmp( const Node &n ) const;
 592   virtual uint size_of() const; // Size is bigger
 593 public:
 594   CallStaticJavaNode(const TypeFunc* tf, address addr, ciMethod* method, int bci)
 595     : CallJavaNode(tf, addr, method, bci), _name(NULL) {
 596     init_class_id(Class_CallStaticJava);
 597   }
 598   CallStaticJavaNode(const TypeFunc* tf, address addr, const char* name, int bci,
 599                      const TypePtr* adr_type)




 545 
 546   virtual uint match_edge(uint idx) const;
 547 
 548 #ifndef PRODUCT
 549   virtual void        dump_req()  const;
 550   virtual void        dump_spec(outputStream *st) const;
 551 #endif
 552 };
 553 
 554 
 555 //------------------------------CallJavaNode-----------------------------------
 556 // Make a static or dynamic subroutine call node using Java calling
 557 // convention.  (The "Java" calling convention is the compiler's calling
 558 // convention, as opposed to the interpreter's or that of native C.)
 559 class CallJavaNode : public CallNode {
 560 protected:
 561   virtual uint cmp( const Node &n ) const;
 562   virtual uint size_of() const; // Size is bigger
 563 
 564   bool    _optimized_virtual;
 565   bool    _method_handle_invoke;
 566   ciMethod* _method;            // Method being direct called
 567 public:
 568   const int       _bci;         // Byte Code Index of call byte code
 569   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 570     : CallNode(tf, addr, TypePtr::BOTTOM),
 571       _method(method), _bci(bci),
 572       _optimized_virtual(false),
 573       _method_handle_invoke(false)
 574   {
 575     init_class_id(Class_CallJava);
 576   }
 577 
 578   virtual int   Opcode() const;
 579   ciMethod* method() const                { return _method; }
 580   void  set_method(ciMethod *m)           { _method = m; }
 581   void  set_optimized_virtual(bool f)     { _optimized_virtual = f; }
 582   bool  is_optimized_virtual() const      { return _optimized_virtual; }
 583   void  set_method_handle_invoke(bool f)  { _method_handle_invoke = f; }
 584   bool  is_method_handle_invoke() const   { return _method_handle_invoke; }
 585 
 586 #ifndef PRODUCT
 587   virtual void  dump_spec(outputStream *st) const;
 588 #endif
 589 };
 590 
 591 //------------------------------CallStaticJavaNode-----------------------------
 592 // Make a direct subroutine call using Java calling convention (for static
 593 // calls and optimized virtual calls, plus calls to wrappers for run-time
 594 // routines); generates static stub.
 595 class CallStaticJavaNode : public CallJavaNode {
 596   virtual uint cmp( const Node &n ) const;
 597   virtual uint size_of() const; // Size is bigger
 598 public:
 599   CallStaticJavaNode(const TypeFunc* tf, address addr, ciMethod* method, int bci)
 600     : CallJavaNode(tf, addr, method, bci), _name(NULL) {
 601     init_class_id(Class_CallStaticJava);
 602   }
 603   CallStaticJavaNode(const TypeFunc* tf, address addr, const char* name, int bci,
 604                      const TypePtr* adr_type)


src/share/vm/opto/callnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File