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 1025 : imported patch indy.compiler.patch


 522   Node *result_cast();
 523 
 524   virtual uint match_edge(uint idx) const;
 525 
 526 #ifndef PRODUCT
 527   virtual void        dump_req()  const;
 528   virtual void        dump_spec(outputStream *st) const;
 529 #endif
 530 };
 531 
 532 //------------------------------CallJavaNode-----------------------------------
 533 // Make a static or dynamic subroutine call node using Java calling
 534 // convention.  (The "Java" calling convention is the compiler's calling
 535 // convention, as opposed to the interpreter's or that of native C.)
 536 class CallJavaNode : public CallNode {
 537 protected:
 538   virtual uint cmp( const Node &n ) const;
 539   virtual uint size_of() const; // Size is bigger
 540 
 541   bool    _optimized_virtual;

 542   ciMethod* _method;            // Method being direct called
 543 public:
 544   const int       _bci;         // Byte Code Index of call byte code
 545   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 546     : CallNode(tf, addr, TypePtr::BOTTOM),
 547       _method(method), _bci(bci), _optimized_virtual(false)


 548   {
 549     init_class_id(Class_CallJava);
 550   }
 551 
 552   virtual int   Opcode() const;
 553   ciMethod* method() const                { return _method; }
 554   void  set_method(ciMethod *m)           { _method = m; }
 555   void  set_optimized_virtual(bool f)     { _optimized_virtual = f; }
 556   bool  is_optimized_virtual() const      { return _optimized_virtual; }


 557 
 558 #ifndef PRODUCT
 559   virtual void  dump_spec(outputStream *st) const;
 560 #endif
 561 };
 562 
 563 //------------------------------CallStaticJavaNode-----------------------------
 564 // Make a direct subroutine call using Java calling convention (for static
 565 // calls and optimized virtual calls, plus calls to wrappers for run-time
 566 // routines); generates static stub.
 567 class CallStaticJavaNode : public CallJavaNode {
 568   virtual uint cmp( const Node &n ) const;
 569   virtual uint size_of() const; // Size is bigger
 570 public:
 571   CallStaticJavaNode(const TypeFunc* tf, address addr, ciMethod* method, int bci)
 572     : CallJavaNode(tf, addr, method, bci), _name(NULL) {
 573     init_class_id(Class_CallStaticJava);
 574   }
 575   CallStaticJavaNode(const TypeFunc* tf, address addr, const char* name, int bci,
 576                      const TypePtr* adr_type)




 522   Node *result_cast();
 523 
 524   virtual uint match_edge(uint idx) const;
 525 
 526 #ifndef PRODUCT
 527   virtual void        dump_req()  const;
 528   virtual void        dump_spec(outputStream *st) const;
 529 #endif
 530 };
 531 
 532 //------------------------------CallJavaNode-----------------------------------
 533 // Make a static or dynamic subroutine call node using Java calling
 534 // convention.  (The "Java" calling convention is the compiler's calling
 535 // convention, as opposed to the interpreter's or that of native C.)
 536 class CallJavaNode : public CallNode {
 537 protected:
 538   virtual uint cmp( const Node &n ) const;
 539   virtual uint size_of() const; // Size is bigger
 540 
 541   bool    _optimized_virtual;
 542   bool    _method_handle_invoke;
 543   ciMethod* _method;            // Method being direct called
 544 public:
 545   const int       _bci;         // Byte Code Index of call byte code
 546   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 547     : CallNode(tf, addr, TypePtr::BOTTOM),
 548       _method(method), _bci(bci),
 549       _optimized_virtual(false),
 550       _method_handle_invoke(false)
 551   {
 552     init_class_id(Class_CallJava);
 553   }
 554 
 555   virtual int   Opcode() const;
 556   ciMethod* method() const                { return _method; }
 557   void  set_method(ciMethod *m)           { _method = m; }
 558   void  set_optimized_virtual(bool f)     { _optimized_virtual = f; }
 559   bool  is_optimized_virtual() const      { return _optimized_virtual; }
 560   void  set_method_handle_invoke(bool f)  { _method_handle_invoke = f; }
 561   bool  is_method_handle_invoke() const   { return _method_handle_invoke; }
 562 
 563 #ifndef PRODUCT
 564   virtual void  dump_spec(outputStream *st) const;
 565 #endif
 566 };
 567 
 568 //------------------------------CallStaticJavaNode-----------------------------
 569 // Make a direct subroutine call using Java calling convention (for static
 570 // calls and optimized virtual calls, plus calls to wrappers for run-time
 571 // routines); generates static stub.
 572 class CallStaticJavaNode : public CallJavaNode {
 573   virtual uint cmp( const Node &n ) const;
 574   virtual uint size_of() const; // Size is bigger
 575 public:
 576   CallStaticJavaNode(const TypeFunc* tf, address addr, ciMethod* method, int bci)
 577     : CallJavaNode(tf, addr, method, bci), _name(NULL) {
 578     init_class_id(Class_CallStaticJava);
 579   }
 580   CallStaticJavaNode(const TypeFunc* tf, address addr, const char* name, int bci,
 581                      const TypePtr* adr_type)


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