A method comprising: accessing a sequence of cryptographic-based instructions to execute on encrypted data stored in data cache units of a processor; and executing the sequence of cryptographic-based instructions by a core of the processor, wherein execution comprises one or more of: decrypting the encrypted data based on a first pointer value; executing a cryptographic-based instruction based on data obtained from decryption of the encrypted data; encrypting a result of execution of a cryptographic-based instruction, wherein the encryption is based on a second pointer value; and storing encrypted data in the data cache units, wherein the encrypted data stored in the data cache units is based on an encrypted result of execution of a cryptographic-based instruction wherein executing the sequence of cryptographic-based instructions comprises: generating, for each cryptographic-based instruction, at least one encryption-based microoperation and at least one non-encryption-based microoperation; scheduling the at least one encryption-based microoperation and the at least one non-encryption-based microoperation for execution based on timings of the encryption-based microoperation; and executing the scheduled microoperations. accessing a sequence of cryptographic-based instructions to execute on encrypted data stored in data cache units of a processor; and executing the sequence of cryptographic-based instructions by a core of the processor, wherein execution comprises one or more of: decrypting the encrypted data based on a first pointer value; executing a cryptographic-based instruction based on data obtained from decryption of the encrypted data; encrypting a result of execution of a cryptographic-based instruction, wherein the encryption is based on a second pointer value; and storing encrypted data in the data cache units, wherein the encrypted data stored in the data cache units is based on an encrypted result of execution of a cryptographic-based instruction decrypting the encrypted data based on a first pointer value; executing a cryptographic-based instruction based on data obtained from decryption of the encrypted data; encrypting a result of execution of a cryptographic-based instruction, wherein the encryption is based on a second pointer value; and storing encrypted data in the data cache units, wherein the encrypted data stored in the data cache units is based on an encrypted result of execution of a cryptographic-based instruction wherein executing the sequence of cryptographic-based instructions comprises: generating, for each cryptographic-based instruction, at least one encryption-based microoperation and at least one non-encryption-based microoperation; scheduling the at least one encryption-based microoperation and the at least one non-encryption-based microoperation for execution based on timings of the encryption-based microoperation; and executing the scheduled microoperations. generating, for each cryptographic-based instruction, at least one encryption-based microoperation and at least one non-encryption-based microoperation; scheduling the at least one encryption-based microoperation and the at least one non-encryption-based microoperation for execution based on timings of the encryption-based microoperation; and executing the scheduled microoperations. <EOS>