630 virtual int Opcode() const; |
630 virtual int Opcode() const; |
631 // Produces flags |
631 // Produces flags |
632 virtual uint ideal_reg() const { return Op_RegFlags; } |
632 virtual uint ideal_reg() const { return Op_RegFlags; } |
633 }; |
633 }; |
634 |
634 |
|
635 //------------------------------StoreIConditionalNode--------------------------- |
|
636 // Conditionally store int to memory, if no change since prior |
|
637 // load-locked. Sets flags for success or failure of the store. |
|
638 class StoreIConditionalNode : public LoadStoreNode { |
|
639 public: |
|
640 StoreIConditionalNode( Node *c, Node *mem, Node *adr, Node *val, Node *ii ) : LoadStoreNode(c, mem, adr, val, ii) { } |
|
641 virtual int Opcode() const; |
|
642 // Produces flags |
|
643 virtual uint ideal_reg() const { return Op_RegFlags; } |
|
644 }; |
|
645 |
635 //------------------------------StoreLConditionalNode--------------------------- |
646 //------------------------------StoreLConditionalNode--------------------------- |
636 // Conditionally store long to memory, if no change since prior |
647 // Conditionally store long to memory, if no change since prior |
637 // load-locked. Sets flags for success or failure of the store. |
648 // load-locked. Sets flags for success or failure of the store. |
638 class StoreLConditionalNode : public LoadStoreNode { |
649 class StoreLConditionalNode : public LoadStoreNode { |
639 public: |
650 public: |
640 StoreLConditionalNode( Node *c, Node *mem, Node *adr, Node *val, Node *ll ) : LoadStoreNode(c, mem, adr, val, ll) { } |
651 StoreLConditionalNode( Node *c, Node *mem, Node *adr, Node *val, Node *ll ) : LoadStoreNode(c, mem, adr, val, ll) { } |
641 virtual int Opcode() const; |
652 virtual int Opcode() const; |
|
653 // Produces flags |
|
654 virtual uint ideal_reg() const { return Op_RegFlags; } |
642 }; |
655 }; |
643 |
656 |
644 |
657 |
645 //------------------------------CompareAndSwapLNode--------------------------- |
658 //------------------------------CompareAndSwapLNode--------------------------- |
646 class CompareAndSwapLNode : public LoadStoreNode { |
659 class CompareAndSwapLNode : public LoadStoreNode { |