< prev index next >

src/share/vm/opto/memnode.hpp

Print this page




 868   }
 869 };
 870 
 871 class CompareAndExchangeNode : public LoadStoreNode {
 872 private:
 873   const MemNode::MemOrd _mem_ord;
 874 public:
 875   enum {
 876     ExpectedIn = MemNode::ValueIn+1 // One more input than MemNode
 877   };
 878   CompareAndExchangeNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord, const TypePtr* at, const Type* t) :
 879     LoadStoreNode(c, mem, adr, val, at, t, 5), _mem_ord(mem_ord) {
 880      init_req(ExpectedIn, ex );
 881   }
 882 
 883   MemNode::MemOrd order() const {
 884     return _mem_ord;
 885   }
 886 };
 887 
 888 //------------------------------CompareAndSwapLNode---------------------------
 889 class CompareAndSwapLNode : public CompareAndSwapNode {
 890 public:
 891   CompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 892   virtual int Opcode() const;
 893 };
 894 






 895 
 896 //------------------------------CompareAndSwapINode---------------------------
 897 class CompareAndSwapINode : public CompareAndSwapNode {
 898 public:
 899   CompareAndSwapINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 900   virtual int Opcode() const;
 901 };
 902 






 903 
 904 //------------------------------CompareAndSwapPNode---------------------------
 905 class CompareAndSwapPNode : public CompareAndSwapNode {
 906 public:
 907   CompareAndSwapPNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 908   virtual int Opcode() const;
 909 };
 910 
 911 //------------------------------CompareAndSwapNNode---------------------------
 912 class CompareAndSwapNNode : public CompareAndSwapNode {
 913 public:
 914   CompareAndSwapNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 915   virtual int Opcode() const;
 916 };
 917 
 918 
 919 //------------------------------WeakCompareAndSwapLNode---------------------------
 920 class WeakCompareAndSwapLNode : public CompareAndSwapNode {
 921 public:
 922   WeakCompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 923   virtual int Opcode() const;
 924 };
 925 






 926 
 927 //------------------------------WeakCompareAndSwapINode---------------------------
 928 class WeakCompareAndSwapINode : public CompareAndSwapNode {
 929 public:
 930   WeakCompareAndSwapINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 931   virtual int Opcode() const;
 932 };
 933 






 934 
 935 //------------------------------WeakCompareAndSwapPNode---------------------------
 936 class WeakCompareAndSwapPNode : public CompareAndSwapNode {
 937 public:
 938   WeakCompareAndSwapPNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 939   virtual int Opcode() const;
 940 };
 941 
 942 //------------------------------WeakCompareAndSwapNNode---------------------------
 943 class WeakCompareAndSwapNNode : public CompareAndSwapNode {
 944 public:
 945   WeakCompareAndSwapNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 946   virtual int Opcode() const;
 947 };
 948 















 949 //------------------------------CompareAndExchangeLNode---------------------------
 950 class CompareAndExchangeLNode : public CompareAndExchangeNode {
 951 public:
 952   CompareAndExchangeLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeLong::LONG) { }
 953   virtual int Opcode() const;
 954 };
 955 
 956 
 957 //------------------------------CompareAndExchangeINode---------------------------
 958 class CompareAndExchangeINode : public CompareAndExchangeNode {
 959 public:
 960   CompareAndExchangeINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::INT) { }
 961   virtual int Opcode() const;
 962 };
 963 
 964 
 965 //------------------------------CompareAndExchangePNode---------------------------
 966 class CompareAndExchangePNode : public CompareAndExchangeNode {
 967 public:
 968   CompareAndExchangePNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, const Type* t, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, t) { }
 969   virtual int Opcode() const;
 970 };
 971 
 972 //------------------------------CompareAndExchangeNNode---------------------------
 973 class CompareAndExchangeNNode : public CompareAndExchangeNode {
 974 public:
 975   CompareAndExchangeNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, const Type* t, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, t) { }
 976   virtual int Opcode() const;
 977 };
 978 














 979 //------------------------------GetAndAddINode---------------------------
 980 class GetAndAddINode : public LoadStoreNode {
 981 public:
 982   GetAndAddINode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::INT, 4) { }
 983   virtual int Opcode() const;
 984 };
 985 
 986 //------------------------------GetAndAddLNode---------------------------
 987 class GetAndAddLNode : public LoadStoreNode {
 988 public:
 989   GetAndAddLNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeLong::LONG, 4) { }
 990   virtual int Opcode() const;
 991 };
 992 













 993 
 994 //------------------------------GetAndSetINode---------------------------
 995 class GetAndSetINode : public LoadStoreNode {
 996 public:
 997   GetAndSetINode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::INT, 4) { }
 998   virtual int Opcode() const;
 999 };
1000 
1001 //------------------------------GetAndSetINode---------------------------
1002 class GetAndSetLNode : public LoadStoreNode {
1003 public:
1004   GetAndSetLNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeLong::LONG, 4) { }
1005   virtual int Opcode() const;
1006 };
1007 
1008 //------------------------------GetAndSetPNode---------------------------
1009 class GetAndSetPNode : public LoadStoreNode {
1010 public:
1011   GetAndSetPNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* t ) : LoadStoreNode(c, mem, adr, val, at, t, 4) { }
1012   virtual int Opcode() const;
1013 };
1014 
1015 //------------------------------GetAndSetNNode---------------------------
1016 class GetAndSetNNode : public LoadStoreNode {
1017 public:
1018   GetAndSetNNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* t ) : LoadStoreNode(c, mem, adr, val, at, t, 4) { }
1019   virtual int Opcode() const;
1020 };
1021 




 868   }
 869 };
 870 
 871 class CompareAndExchangeNode : public LoadStoreNode {
 872 private:
 873   const MemNode::MemOrd _mem_ord;
 874 public:
 875   enum {
 876     ExpectedIn = MemNode::ValueIn+1 // One more input than MemNode
 877   };
 878   CompareAndExchangeNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord, const TypePtr* at, const Type* t) :
 879     LoadStoreNode(c, mem, adr, val, at, t, 5), _mem_ord(mem_ord) {
 880      init_req(ExpectedIn, ex );
 881   }
 882 
 883   MemNode::MemOrd order() const {
 884     return _mem_ord;
 885   }
 886 };
 887 
 888 //------------------------------CompareAndSwapBNode---------------------------
 889 class CompareAndSwapBNode : public CompareAndSwapNode {
 890 public:
 891   CompareAndSwapBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 892   virtual int Opcode() const;
 893 };
 894 
 895 //------------------------------CompareAndSwapSNode---------------------------
 896 class CompareAndSwapSNode : public CompareAndSwapNode {
 897 public:
 898   CompareAndSwapSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 899   virtual int Opcode() const;
 900 };
 901 
 902 //------------------------------CompareAndSwapINode---------------------------
 903 class CompareAndSwapINode : public CompareAndSwapNode {
 904 public:
 905   CompareAndSwapINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 906   virtual int Opcode() const;
 907 };
 908 
 909 //------------------------------CompareAndSwapLNode---------------------------
 910 class CompareAndSwapLNode : public CompareAndSwapNode {
 911 public:
 912   CompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 913   virtual int Opcode() const;
 914 };
 915 
 916 //------------------------------CompareAndSwapPNode---------------------------
 917 class CompareAndSwapPNode : public CompareAndSwapNode {
 918 public:
 919   CompareAndSwapPNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 920   virtual int Opcode() const;
 921 };
 922 
 923 //------------------------------CompareAndSwapNNode---------------------------
 924 class CompareAndSwapNNode : public CompareAndSwapNode {
 925 public:
 926   CompareAndSwapNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 927   virtual int Opcode() const;
 928 };
 929 
 930 //------------------------------WeakCompareAndSwapBNode---------------------------
 931 class WeakCompareAndSwapBNode : public CompareAndSwapNode {

 932 public:
 933   WeakCompareAndSwapBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 934   virtual int Opcode() const;
 935 };
 936 
 937 //------------------------------WeakCompareAndSwapSNode---------------------------
 938 class WeakCompareAndSwapSNode : public CompareAndSwapNode {
 939 public:
 940   WeakCompareAndSwapSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 941   virtual int Opcode() const;
 942 };
 943 
 944 //------------------------------WeakCompareAndSwapINode---------------------------
 945 class WeakCompareAndSwapINode : public CompareAndSwapNode {
 946 public:
 947   WeakCompareAndSwapINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 948   virtual int Opcode() const;
 949 };
 950 
 951 //------------------------------WeakCompareAndSwapLNode---------------------------
 952 class WeakCompareAndSwapLNode : public CompareAndSwapNode {
 953 public:
 954   WeakCompareAndSwapLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 955   virtual int Opcode() const;
 956 };
 957 
 958 //------------------------------WeakCompareAndSwapPNode---------------------------
 959 class WeakCompareAndSwapPNode : public CompareAndSwapNode {
 960 public:
 961   WeakCompareAndSwapPNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 962   virtual int Opcode() const;
 963 };
 964 
 965 //------------------------------WeakCompareAndSwapNNode---------------------------
 966 class WeakCompareAndSwapNNode : public CompareAndSwapNode {
 967 public:
 968   WeakCompareAndSwapNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, MemNode::MemOrd mem_ord) : CompareAndSwapNode(c, mem, adr, val, ex, mem_ord) { }
 969   virtual int Opcode() const;
 970 };
 971 
 972 //------------------------------CompareAndExchangeBNode---------------------------
 973 class CompareAndExchangeBNode : public CompareAndExchangeNode {
 974 public:
 975   CompareAndExchangeBNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::BYTE) { }
 976   virtual int Opcode() const;
 977 };
 978 
 979 
 980 //------------------------------CompareAndExchangeSNode---------------------------
 981 class CompareAndExchangeSNode : public CompareAndExchangeNode {
 982 public:
 983   CompareAndExchangeSNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::SHORT) { }
 984   virtual int Opcode() const;
 985 };
 986 
 987 //------------------------------CompareAndExchangeLNode---------------------------
 988 class CompareAndExchangeLNode : public CompareAndExchangeNode {
 989 public:
 990   CompareAndExchangeLNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeLong::LONG) { }
 991   virtual int Opcode() const;
 992 };
 993 
 994 
 995 //------------------------------CompareAndExchangeINode---------------------------
 996 class CompareAndExchangeINode : public CompareAndExchangeNode {
 997 public:
 998   CompareAndExchangeINode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, TypeInt::INT) { }
 999   virtual int Opcode() const;
1000 };
1001 
1002 
1003 //------------------------------CompareAndExchangePNode---------------------------
1004 class CompareAndExchangePNode : public CompareAndExchangeNode {
1005 public:
1006   CompareAndExchangePNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, const Type* t, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, t) { }
1007   virtual int Opcode() const;
1008 };
1009 
1010 //------------------------------CompareAndExchangeNNode---------------------------
1011 class CompareAndExchangeNNode : public CompareAndExchangeNode {
1012 public:
1013   CompareAndExchangeNNode( Node *c, Node *mem, Node *adr, Node *val, Node *ex, const TypePtr* at, const Type* t, MemNode::MemOrd mem_ord) : CompareAndExchangeNode(c, mem, adr, val, ex, mem_ord, at, t) { }
1014   virtual int Opcode() const;
1015 };
1016 
1017 //------------------------------GetAndAddBNode---------------------------
1018 class GetAndAddBNode : public LoadStoreNode {
1019 public:
1020   GetAndAddBNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::BYTE, 4) { }
1021   virtual int Opcode() const;
1022 };
1023 
1024 //------------------------------GetAndAddSNode---------------------------
1025 class GetAndAddSNode : public LoadStoreNode {
1026 public:
1027   GetAndAddSNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::SHORT, 4) { }
1028   virtual int Opcode() const;
1029 };
1030 
1031 //------------------------------GetAndAddINode---------------------------
1032 class GetAndAddINode : public LoadStoreNode {
1033 public:
1034   GetAndAddINode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::INT, 4) { }
1035   virtual int Opcode() const;
1036 };
1037 
1038 //------------------------------GetAndAddLNode---------------------------
1039 class GetAndAddLNode : public LoadStoreNode {
1040 public:
1041   GetAndAddLNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeLong::LONG, 4) { }
1042   virtual int Opcode() const;
1043 };
1044 
1045 //------------------------------GetAndSetBNode---------------------------
1046 class GetAndSetBNode : public LoadStoreNode {
1047 public:
1048   GetAndSetBNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::BYTE, 4) { }
1049   virtual int Opcode() const;
1050 };
1051 
1052 //------------------------------GetAndSetSNode---------------------------
1053 class GetAndSetSNode : public LoadStoreNode {
1054 public:
1055   GetAndSetSNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::SHORT, 4) { }
1056   virtual int Opcode() const;
1057 };
1058 
1059 //------------------------------GetAndSetINode---------------------------
1060 class GetAndSetINode : public LoadStoreNode {
1061 public:
1062   GetAndSetINode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeInt::INT, 4) { }
1063   virtual int Opcode() const;
1064 };
1065 
1066 //------------------------------GetAndSetLNode---------------------------
1067 class GetAndSetLNode : public LoadStoreNode {
1068 public:
1069   GetAndSetLNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at ) : LoadStoreNode(c, mem, adr, val, at, TypeLong::LONG, 4) { }
1070   virtual int Opcode() const;
1071 };
1072 
1073 //------------------------------GetAndSetPNode---------------------------
1074 class GetAndSetPNode : public LoadStoreNode {
1075 public:
1076   GetAndSetPNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* t ) : LoadStoreNode(c, mem, adr, val, at, t, 4) { }
1077   virtual int Opcode() const;
1078 };
1079 
1080 //------------------------------GetAndSetNNode---------------------------
1081 class GetAndSetNNode : public LoadStoreNode {
1082 public:
1083   GetAndSetNNode( Node *c, Node *mem, Node *adr, Node *val, const TypePtr* at, const Type* t ) : LoadStoreNode(c, mem, adr, val, at, t, 4) { }
1084   virtual int Opcode() const;
1085 };
1086 


< prev index next >