1. A method comprising: executing original software code compiled targeting a first instruction set; detecting, using processor hardware, a hot spot in the software code and passing control to a binary translation translator; determining a hot spot region for translation; generating the translated code using a second instruction set; placing the translated code in a translation cache; executing the translated code from the translated cache; and transitioning back to the original software code after the translated code finishes execution.