Evaluating Software-based Hardening Techniques for General-Purpose Registers on a GPGPU