comparison src/share/vm/opto/callnode.hpp @ 1137:97125851f396

6829187: compiler optimizations required for JSR 292 Summary: C2 implementation for invokedynamic support. Reviewed-by: kvn, never
author twisti
date Tue, 05 Jan 2010 13:05:58 +0100
parents 7c57aead6d3e
children c18cbe5936b8
comparison
equal deleted inserted replaced
1136:4b84186a8248 1137:97125851f396
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 };