A processor comprising: an instruction unit to receive a first instruction, a second instruction associated with a sharing enclave, a second instruction associated with a receiving enclave, a third instruction associated with a sharing enclave, and a third instruction associated with a receiving enclave, and an execution unit to execute the first instruction, the second instruction associated with the sharing enclave, the second instruction associated with the receiving enclave, the third instruction associated with the sharing enclave, and the third instruction associated with the receiving enclave, wherein the second instruction associated with the sharing enclave is to create a shared page metadata array belonging to the sharing enclave, the second instruction associated with the receiving enclave is to create a shared page metadata array belonging to the receiving enclave, the first instruction is to match an offer of the sharing enclave to make a page in an enclave page cache shareable to a bid of the receiving enclave to make the page shareable, the offer specifying a linear address of the page, permissions and an identity of the receiving enclave, the bid specifying a linear address to which the page is to be mapped, desired permissions and an identity of the sharing enclave, the third instruction associated with the sharing enclave is to create shared page metadata in the shared page metadata array belonging to the sharing enclave, and the third instruction associated with the receiving enclave is to create shared page metadata in the shared page metadata array belonging to the receiving enclave, wherein a page miss handler is to allow the receiving enclave to access the page according to permissions set by the first instruction. an instruction unit to receive a first instruction, a second instruction associated with a sharing enclave, a second instruction associated with a receiving enclave, a third instruction associated with a sharing enclave, and a third instruction associated with a receiving enclave, and an execution unit to execute the first instruction, the second instruction associated with the sharing enclave, the second instruction associated with the receiving enclave, the third instruction associated with the sharing enclave, and the third instruction associated with the receiving enclave, wherein the second instruction associated with the sharing enclave is to create a shared page metadata array belonging to the sharing enclave, the second instruction associated with the receiving enclave is to create a shared page metadata array belonging to the receiving enclave, the first instruction is to match an offer of the sharing enclave to make a page in an enclave page cache shareable to a bid of the receiving enclave to make the page shareable, the offer specifying a linear address of the page, permissions and an identity of the receiving enclave, the bid specifying a linear address to which the page is to be mapped, desired permissions and an identity of the sharing enclave, the third instruction associated with the sharing enclave is to create shared page metadata in the shared page metadata array belonging to the sharing enclave, and the third instruction associated with the receiving enclave is to create shared page metadata in the shared page metadata array belonging to the receiving enclave, wherein a page miss handler is to allow the receiving enclave to access the page according to permissions set by the first instruction.