560 protected: |
560 protected: |
561 virtual uint cmp( const Node &n ) const; |
561 virtual uint cmp( const Node &n ) const; |
562 virtual uint size_of() const; // Size is bigger |
562 virtual uint size_of() const; // Size is bigger |
563 |
563 |
564 bool _optimized_virtual; |
564 bool _optimized_virtual; |
|
565 bool _method_handle_invoke; |
565 ciMethod* _method; // Method being direct called |
566 ciMethod* _method; // Method being direct called |
566 public: |
567 public: |
567 const int _bci; // Byte Code Index of call byte code |
568 const int _bci; // Byte Code Index of call byte code |
568 CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci) |
569 CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci) |
569 : CallNode(tf, addr, TypePtr::BOTTOM), |
570 : CallNode(tf, addr, TypePtr::BOTTOM), |
570 _method(method), _bci(bci), _optimized_virtual(false) |
571 _method(method), _bci(bci), |
|
572 _optimized_virtual(false), |
|
573 _method_handle_invoke(false) |
571 { |
574 { |
572 init_class_id(Class_CallJava); |
575 init_class_id(Class_CallJava); |
573 } |
576 } |
574 |
577 |
575 virtual int Opcode() const; |
578 virtual int Opcode() const; |
576 ciMethod* method() const { return _method; } |
579 ciMethod* method() const { return _method; } |
577 void set_method(ciMethod *m) { _method = m; } |
580 void set_method(ciMethod *m) { _method = m; } |
578 void set_optimized_virtual(bool f) { _optimized_virtual = f; } |
581 void set_optimized_virtual(bool f) { _optimized_virtual = f; } |
579 bool is_optimized_virtual() const { return _optimized_virtual; } |
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; } |
580 |
585 |
581 #ifndef PRODUCT |
586 #ifndef PRODUCT |
582 virtual void dump_spec(outputStream *st) const; |
587 virtual void dump_spec(outputStream *st) const; |
583 #endif |
588 #endif |
584 }; |
589 }; |