Пишу на C и мне до этого регистра дела мало. Просто решил создать в программе параллельный поток. Проделываю обычную процедуру сохранения-восcтановления регистров. Может r3 вообще не трогать? Судя по всему, Вы к этому клоните?