A method for securing code from attempts to substitute unauthorized code, comprising: maintaining a translation lookaside buffer with execute permission entries; determining if an instruction in a memory page has a valid execute permission entry in the translation lookaside buffer; if the instruction in the memory page is determined to have a valid execute permission entry in the translation lookaside buffer, then determining if the execute permission entry in the translation lookaside buffer permits execution of the instruction, and if the valid execute permission entry in the translation lookaside buffer is determined to permit execution of the instruction, then performing a fetch and execute of an instruction corresponding to the memory page, and if the valid execute permission entry in the translation lookaside buffer is determined to not permit execution of the instruction, determining, by lookup of a page table for execute permissions for the memory page, if execution of the instruction is permitted; if the instruction does not have a valid execute permission entry in the translation lookaside buffer, then determining, by lookup of the page table for execute permissions for the memory page, if execution of the instruction is permitted, and if the lookup of the page table determines execution of the instruction is permitted, then determining if authentication of the page is needed and, if authentication of the page is determined as needed, determining (218, 219) if the page is authentic, if the page is determined as authentic, setting the execute permission entry for the instruction in the translation lookaside buffer to indicate that the execute permission entry is valid and execution of the instruction is permitted, and performing a fetch and execute of an instruction corresponding to the memory page. maintaining a translation lookaside buffer with execute permission entries; determining if an instruction in a memory page has a valid execute permission entry in the translation lookaside buffer; if the instruction in the memory page is determined to have a valid execute permission entry in the translation lookaside buffer, then determining if the execute permission entry in the translation lookaside buffer permits execution of the instruction, and if the valid execute permission entry in the translation lookaside buffer is determined to permit execution of the instruction, then performing a fetch and execute of an instruction corresponding to the memory page, and if the valid execute permission entry in the translation lookaside buffer is determined to not permit execution of the instruction, determining, by lookup of a page table for execute permissions for the memory page, if execution of the instruction is permitted; if the valid execute permission entry in the translation lookaside buffer is determined to permit execution of the instruction, then performing a fetch and execute of an instruction corresponding to the memory page, and if the valid execute permission entry in the translation lookaside buffer is determined to not permit execution of the instruction, determining, by lookup of a page table for execute permissions for the memory page, if execution of the instruction is permitted; if the instruction does not have a valid execute permission entry in the translation lookaside buffer, then determining, by lookup of the page table for execute permissions for the memory page, if execution of the instruction is permitted, and if the lookup of the page table determines execution of the instruction is permitted, then determining if authentication of the page is needed and, if authentication of the page is determined as needed, determining (218, 219) if the page is authentic, if the page is determined as authentic, setting the execute permission entry for the instruction in the translation lookaside buffer to indicate that the execute permission entry is valid and execution of the instruction is permitted, and performing a fetch and execute of an instruction corresponding to the memory page. if the lookup of the page table determines execution of the instruction is permitted, then determining if authentication of the page is needed and, if authentication of the page is determined as needed, determining (218, 219) if the page is authentic, if the page is determined as authentic, setting the execute permission entry for the instruction in the translation lookaside buffer to indicate that the execute permission entry is valid and execution of the instruction is permitted, and performing a fetch and execute of an instruction corresponding to the memory page. if authentication of the page is determined as needed, determining (218, 219) if the page is authentic, if the page is determined as authentic, setting the execute permission entry for the instruction in the translation lookaside buffer to indicate that the execute permission entry is valid and execution of the instruction is permitted, and performing a fetch and execute of an instruction corresponding to the memory page. if the page is determined as authentic, setting the execute permission entry for the instruction in the translation lookaside buffer to indicate that the execute permission entry is valid and execution of the instruction is permitted, and performing a fetch and execute of an instruction corresponding to the memory page.