У Sparc отсутствует одноступенчатый бит в PSR, поэтому сложнее одноступенчатый. Но я использовал трюк, чтобы помочь сблизиться. Установите для TPC адрес инструкции, которую вы хотите выполнить за один шаг, и установите для TNPC адрес, который находится где-то еще, где вы поместили инструкцию прерывания. Когда вы выполняете инструкцию повтора, чтобы вернуться к контексту процесса, он пошагово выполняет только одну инструкцию, которую вы хотите, затем выполняет команду trap, которая вернет вас обратно в ядро, где вы сможете делать все, что захотите. (n.b это для sparc64, не уверен насчет sparc32). Это хороший трюк, потому что вам не нужно изменять существующие инструкции в адресном пространстве пользователя. Это было важно для меня, так как я выполнял пошаговые инструкции в ядре.
Другой идеей, которую я имел, но никогда не пытался, было просто установить TNPC на недопустимый адрес. Затем, после выполнения инструкции в TPC, вы получите автоматическую ловушку обратно в ядро. А поскольку код обработки прерываний знает, что процесс является одностадийным, не возникнет путаницы в отношении «реальной» незаконной ловушки адресов.