1. A method comprising: executing operations of a program with a main thread, tracking the main thread's execution of the operations of the program with a tracking thread dynamically generated by a compiler or a binary translator, updating, with the tracking thread, a taint value associated with a value of the main thread to reflect whether the value is tainted, including updating a first register of a first core that executes the tracking thread with the taint value, the first register associated with a first register of a second core that executes the main thread, the first register of the second core storing the value, the first and second cores being distinct cores, and determining, with the tracking thread based upon the taint value, whether use of the value by the main thread violates a specific security policy, the method further including defining a memory offset that correlates memory locations of the main thread to memory locations of the tracking thread, storing the value at a memory location of the main thread, and storing the taint value at a memory location of the tracking thread that corresponds to the memory offset from the memory location of the main thread used to store the value.