src/share/vm/opto/memnode.hpp

Print this page

        

*** 995,1005 **** }; // "Acquire" - no following ref can move before (but earlier refs can // follow, like an early Load stalled in cache). Requires multi-cpu // visibility. Inserted independ of any load, as required ! // for intrinsic sun.misc.Unsafe.loadFence(). class LoadFenceNode: public MemBarNode { public: LoadFenceNode(Compile* C, int alias_idx, Node* precedent) : MemBarNode(C, alias_idx, precedent) {} virtual int Opcode() const; --- 995,1005 ---- }; // "Acquire" - no following ref can move before (but earlier refs can // follow, like an early Load stalled in cache). Requires multi-cpu // visibility. Inserted independ of any load, as required ! // for intrinsic [sun|jdk.internal].misc.Unsafe.loadFence(). class LoadFenceNode: public MemBarNode { public: LoadFenceNode(Compile* C, int alias_idx, Node* precedent) : MemBarNode(C, alias_idx, precedent) {} virtual int Opcode() const;
*** 1016,1026 **** }; // "Release" - no earlier ref can move after (but later refs can move // up, like a speculative pipelined cache-hitting Load). Requires // multi-cpu visibility. Inserted independent of any store, as required ! // for intrinsic sun.misc.Unsafe.storeFence(). class StoreFenceNode: public MemBarNode { public: StoreFenceNode(Compile* C, int alias_idx, Node* precedent) : MemBarNode(C, alias_idx, precedent) {} virtual int Opcode() const; --- 1016,1026 ---- }; // "Release" - no earlier ref can move after (but later refs can move // up, like a speculative pipelined cache-hitting Load). Requires // multi-cpu visibility. Inserted independent of any store, as required ! // for intrinsic [sun|jdk.internal].misc.Unsafe.storeFence(). class StoreFenceNode: public MemBarNode { public: StoreFenceNode(Compile* C, int alias_idx, Node* precedent) : MemBarNode(C, alias_idx, precedent) {} virtual int Opcode() const;