< prev index next >

src/share/vm/opto/machnode.hpp

Print this page




 887   virtual int ret_addr_offset();
 888 #ifndef PRODUCT
 889   virtual void dump_spec(outputStream *st) const;
 890 #endif
 891 };
 892 
 893 class MachCallLeafNode: public MachCallRuntimeNode {
 894 public:
 895   MachCallLeafNode() : MachCallRuntimeNode() {
 896     init_class_id(Class_MachCallLeaf);
 897   }
 898 };
 899 
 900 //------------------------------MachHaltNode-----------------------------------
 901 // Machine-specific versions of halt nodes
 902 class MachHaltNode : public MachReturnNode {
 903 public:
 904   virtual JVMState* jvms() const;
 905 };
 906 













 907 
 908 //------------------------------MachTempNode-----------------------------------
 909 // Node used by the adlc to construct inputs to represent temporary registers
 910 class MachTempNode : public MachNode {
 911 private:
 912   MachOper *_opnd_array[1];
 913 
 914 public:
 915   virtual const RegMask &out_RegMask() const { return *_opnds[0]->in_RegMask(0); }
 916   virtual uint rule() const { return 9999999; }
 917   virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {}
 918 
 919   MachTempNode(MachOper* oper) {
 920     init_class_id(Class_MachTemp);
 921     _num_opnds = 1;
 922     _opnds = _opnd_array;
 923     add_req(NULL);
 924     _opnds[0] = oper;
 925   }
 926   virtual uint size_of() const { return sizeof(MachTempNode); }




 887   virtual int ret_addr_offset();
 888 #ifndef PRODUCT
 889   virtual void dump_spec(outputStream *st) const;
 890 #endif
 891 };
 892 
 893 class MachCallLeafNode: public MachCallRuntimeNode {
 894 public:
 895   MachCallLeafNode() : MachCallRuntimeNode() {
 896     init_class_id(Class_MachCallLeaf);
 897   }
 898 };
 899 
 900 //------------------------------MachHaltNode-----------------------------------
 901 // Machine-specific versions of halt nodes
 902 class MachHaltNode : public MachReturnNode {
 903 public:
 904   virtual JVMState* jvms() const;
 905 };
 906 
 907 class MachMemBarNode : public MachNode {
 908   virtual uint size_of() const; // Size is bigger
 909 public:
 910   const TypePtr* _adr_type;     // memory effects of call or return
 911   MachMemBarNode() : MachNode() {
 912     init_class_id(Class_MachMemBar);
 913     _adr_type = TypePtr::BOTTOM; // the default: all of memory
 914   }
 915 
 916   void set_adr_type(const TypePtr* atp) { _adr_type = atp; }
 917   virtual const TypePtr *adr_type() const;
 918 };
 919 
 920 
 921 //------------------------------MachTempNode-----------------------------------
 922 // Node used by the adlc to construct inputs to represent temporary registers
 923 class MachTempNode : public MachNode {
 924 private:
 925   MachOper *_opnd_array[1];
 926 
 927 public:
 928   virtual const RegMask &out_RegMask() const { return *_opnds[0]->in_RegMask(0); }
 929   virtual uint rule() const { return 9999999; }
 930   virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {}
 931 
 932   MachTempNode(MachOper* oper) {
 933     init_class_id(Class_MachTemp);
 934     _num_opnds = 1;
 935     _opnds = _opnd_array;
 936     add_req(NULL);
 937     _opnds[0] = oper;
 938   }
 939   virtual uint size_of() const { return sizeof(MachTempNode); }


< prev index next >