655 virtual uint cmp( const Node &n ) const; |
655 virtual uint cmp( const Node &n ) const; |
656 virtual uint size_of() const; // Size is bigger |
656 virtual uint size_of() const; // Size is bigger |
657 |
657 |
658 bool _optimized_virtual; |
658 bool _optimized_virtual; |
659 bool _method_handle_invoke; |
659 bool _method_handle_invoke; |
660 ciMethod* _method; // Method being direct called |
660 bool _override_symbolic_info; // Override symbolic call site info from bytecode |
|
661 ciMethod* _method; // Method being direct called |
661 public: |
662 public: |
662 const int _bci; // Byte Code Index of call byte code |
663 const int _bci; // Byte Code Index of call byte code |
663 CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci) |
664 CallJavaNode(const TypeFunc* tf , address addr, ciMethod* method, int bci) |
664 : CallNode(tf, addr, TypePtr::BOTTOM), |
665 : CallNode(tf, addr, TypePtr::BOTTOM), |
665 _method(method), _bci(bci), |
666 _method(method), _bci(bci), |
666 _optimized_virtual(false), |
667 _optimized_virtual(false), |
667 _method_handle_invoke(false) |
668 _method_handle_invoke(false), |
|
669 _override_symbolic_info(false) |
668 { |
670 { |
669 init_class_id(Class_CallJava); |
671 init_class_id(Class_CallJava); |
670 } |
672 } |
671 |
673 |
672 virtual int Opcode() const; |
674 virtual int Opcode() const; |
673 ciMethod* method() const { return _method; } |
675 ciMethod* method() const { return _method; } |
674 void set_method(ciMethod *m) { _method = m; } |
676 void set_method(ciMethod *m) { _method = m; } |
675 void set_optimized_virtual(bool f) { _optimized_virtual = f; } |
677 void set_optimized_virtual(bool f) { _optimized_virtual = f; } |
676 bool is_optimized_virtual() const { return _optimized_virtual; } |
678 bool is_optimized_virtual() const { return _optimized_virtual; } |
677 void set_method_handle_invoke(bool f) { _method_handle_invoke = f; } |
679 void set_method_handle_invoke(bool f) { _method_handle_invoke = f; } |
678 bool is_method_handle_invoke() const { return _method_handle_invoke; } |
680 bool is_method_handle_invoke() const { return _method_handle_invoke; } |
|
681 void set_override_symbolic_info(bool f) { _override_symbolic_info = f; } |
|
682 bool override_symbolic_info() const { return _override_symbolic_info; } |
679 |
683 |
680 #ifndef PRODUCT |
684 #ifndef PRODUCT |
681 virtual void dump_spec(outputStream *st) const; |
685 virtual void dump_spec(outputStream *st) const; |
682 virtual void dump_compact_spec(outputStream *st) const; |
686 virtual void dump_compact_spec(outputStream *st) const; |
683 #endif |
687 #endif |