< prev index next >

src/share/vm/opto/machnode.hpp

Print this page




 855   void set_tf(const TypeFunc* tf) { _tf = tf; }
 856   void set_entry_point(address p) { _entry_point = p; }
 857   void set_cnt(float c)           { _cnt = c; }
 858   void set_argsize(int s)         { _argsize = s; }
 859 
 860   MachCallNode() : MachSafePointNode() {
 861     init_class_id(Class_MachCall);
 862   }
 863 
 864   virtual const Type *bottom_type() const;
 865   virtual bool  pinned() const { return false; }
 866   virtual const Type* Value(PhaseGVN* phase) const;
 867   virtual const RegMask &in_RegMask(uint) const;
 868   virtual int ret_addr_offset() { return 0; }
 869 
 870   bool returns_long() const { return tf()->return_type() == T_LONG; }
 871   bool return_value_is_used() const;
 872 
 873   // Similar to cousin class CallNode::returns_pointer
 874   bool returns_pointer() const;

 875 
 876 #ifndef PRODUCT
 877   virtual void dump_spec(outputStream *st) const;
 878 #endif
 879 };
 880 
 881 //------------------------------MachCallJavaNode------------------------------
 882 // "Base" class for machine-specific versions of subroutine calls
 883 class MachCallJavaNode : public MachCallNode {
 884 protected:
 885   virtual uint cmp( const Node &n ) const;
 886   virtual uint size_of() const; // Size is bigger
 887 public:
 888   ciMethod* _method;                 // Method being direct called
 889   bool      _override_symbolic_info; // Override symbolic call site info from bytecode
 890   int       _bci;                    // Byte Code index of call byte code
 891   bool      _optimized_virtual;      // Tells if node is a static call or an optimized virtual
 892   bool      _method_handle_invoke;   // Tells if the call has to preserve SP
 893   MachCallJavaNode() : MachCallNode(), _override_symbolic_info(false) {
 894     init_class_id(Class_MachCallJava);




 855   void set_tf(const TypeFunc* tf) { _tf = tf; }
 856   void set_entry_point(address p) { _entry_point = p; }
 857   void set_cnt(float c)           { _cnt = c; }
 858   void set_argsize(int s)         { _argsize = s; }
 859 
 860   MachCallNode() : MachSafePointNode() {
 861     init_class_id(Class_MachCall);
 862   }
 863 
 864   virtual const Type *bottom_type() const;
 865   virtual bool  pinned() const { return false; }
 866   virtual const Type* Value(PhaseGVN* phase) const;
 867   virtual const RegMask &in_RegMask(uint) const;
 868   virtual int ret_addr_offset() { return 0; }
 869 
 870   bool returns_long() const { return tf()->return_type() == T_LONG; }
 871   bool return_value_is_used() const;
 872 
 873   // Similar to cousin class CallNode::returns_pointer
 874   bool returns_pointer() const;
 875   bool returns_vt() const;
 876 
 877 #ifndef PRODUCT
 878   virtual void dump_spec(outputStream *st) const;
 879 #endif
 880 };
 881 
 882 //------------------------------MachCallJavaNode------------------------------
 883 // "Base" class for machine-specific versions of subroutine calls
 884 class MachCallJavaNode : public MachCallNode {
 885 protected:
 886   virtual uint cmp( const Node &n ) const;
 887   virtual uint size_of() const; // Size is bigger
 888 public:
 889   ciMethod* _method;                 // Method being direct called
 890   bool      _override_symbolic_info; // Override symbolic call site info from bytecode
 891   int       _bci;                    // Byte Code index of call byte code
 892   bool      _optimized_virtual;      // Tells if node is a static call or an optimized virtual
 893   bool      _method_handle_invoke;   // Tells if the call has to preserve SP
 894   MachCallJavaNode() : MachCallNode(), _override_symbolic_info(false) {
 895     init_class_id(Class_MachCallJava);


< prev index next >