< prev index next >

src/hotspot/share/opto/callnode.hpp

Print this page




 666   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 667     : CallNode(tf, addr, TypePtr::BOTTOM),
 668       _optimized_virtual(false),
 669       _method_handle_invoke(false),
 670       _override_symbolic_info(false),
 671       _method(method), _bci(bci)
 672   {
 673     init_class_id(Class_CallJava);
 674   }
 675 
 676   virtual int   Opcode() const;
 677   ciMethod* method() const                 { return _method; }
 678   void  set_method(ciMethod *m)            { _method = m; }
 679   void  set_optimized_virtual(bool f)      { _optimized_virtual = f; }
 680   bool  is_optimized_virtual() const       { return _optimized_virtual; }
 681   void  set_method_handle_invoke(bool f)   { _method_handle_invoke = f; }
 682   bool  is_method_handle_invoke() const    { return _method_handle_invoke; }
 683   void  set_override_symbolic_info(bool f) { _override_symbolic_info = f; }
 684   bool  override_symbolic_info() const     { return _override_symbolic_info; }
 685 


 686 #ifndef PRODUCT
 687   virtual void  dump_spec(outputStream *st) const;
 688   virtual void  dump_compact_spec(outputStream *st) const;
 689 #endif
 690 };
 691 
 692 //------------------------------CallStaticJavaNode-----------------------------
 693 // Make a direct subroutine call using Java calling convention (for static
 694 // calls and optimized virtual calls, plus calls to wrappers for run-time
 695 // routines); generates static stub.
 696 class CallStaticJavaNode : public CallJavaNode {
 697   virtual uint cmp( const Node &n ) const;
 698   virtual uint size_of() const; // Size is bigger
 699 public:
 700   CallStaticJavaNode(Compile* C, const TypeFunc* tf, address addr, ciMethod* method, int bci)
 701     : CallJavaNode(tf, addr, method, bci) {
 702     init_class_id(Class_CallStaticJava);
 703     if (C->eliminate_boxing() && (method != NULL) && method->is_boxing_method()) {
 704       init_flags(Flag_is_macro);
 705       C->add_macro_node(this);




 666   CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci)
 667     : CallNode(tf, addr, TypePtr::BOTTOM),
 668       _optimized_virtual(false),
 669       _method_handle_invoke(false),
 670       _override_symbolic_info(false),
 671       _method(method), _bci(bci)
 672   {
 673     init_class_id(Class_CallJava);
 674   }
 675 
 676   virtual int   Opcode() const;
 677   ciMethod* method() const                 { return _method; }
 678   void  set_method(ciMethod *m)            { _method = m; }
 679   void  set_optimized_virtual(bool f)      { _optimized_virtual = f; }
 680   bool  is_optimized_virtual() const       { return _optimized_virtual; }
 681   void  set_method_handle_invoke(bool f)   { _method_handle_invoke = f; }
 682   bool  is_method_handle_invoke() const    { return _method_handle_invoke; }
 683   void  set_override_symbolic_info(bool f) { _override_symbolic_info = f; }
 684   bool  override_symbolic_info() const     { return _override_symbolic_info; }
 685 
 686   DEBUG_ONLY( bool validate_symbolic_info() const; )
 687 
 688 #ifndef PRODUCT
 689   virtual void  dump_spec(outputStream *st) const;
 690   virtual void  dump_compact_spec(outputStream *st) const;
 691 #endif
 692 };
 693 
 694 //------------------------------CallStaticJavaNode-----------------------------
 695 // Make a direct subroutine call using Java calling convention (for static
 696 // calls and optimized virtual calls, plus calls to wrappers for run-time
 697 // routines); generates static stub.
 698 class CallStaticJavaNode : public CallJavaNode {
 699   virtual uint cmp( const Node &n ) const;
 700   virtual uint size_of() const; // Size is bigger
 701 public:
 702   CallStaticJavaNode(Compile* C, const TypeFunc* tf, address addr, ciMethod* method, int bci)
 703     : CallJavaNode(tf, addr, method, bci) {
 704     init_class_id(Class_CallStaticJava);
 705     if (C->eliminate_boxing() && (method != NULL) && method->is_boxing_method()) {
 706       init_flags(Flag_is_macro);
 707       C->add_macro_node(this);


< prev index next >