Patent attributes
Systems for detecting unexpected program flow may include a hardware program flow monitor to generate an interrupt signal if a software program flow value does not match an incrementally updated hardware value when a processor executes a program flow check instruction. In some examples, a program of instructions may include a number of program flow check instructions. When a program flow check instruction is executed, the processor may send the software value to be compared to the hardware register value. In an illustrative example, program execution causes the hardware value to be incremented in a hardware register. Upon execution of a program flow check instruction, the hardware value is compared to a software value associated with the program flow check instruction to determine if the program instructions have been executed in an expected sequence (e.g., according to an expected program flow).