working on restoring r8 and final return address after exit