1. A method for enforcing flow control of a software program in a processor, the method comprising: analyzing program code of the software program to identify a code pointer in the program code; generating an authentication tag based on the code pointer; and modifying the code pointer in the program code with the authentication tag to generate a tagged code pointer.