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 plurality of code pointers in the program code; identifying a common set of bit values in an address of each of the plurality of code pointers; and for each code pointer of the plurality of code pointers: 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 by replacing a set of bits in the code pointer with a set of bits from the authentication tag, the set of bits being replaced in the code pointer corresponding to the common set of bit values.