Potrei avere un chiarimento sull'uso dei registri "s"?

Ho fatto questo codice però ho usato solo registri temporanei...avrei potuto anche usare i registri s?

In che modo (in caso affermativo)?

Grazie per la risposta anticipatamente!

# Scrivere in RiscV il seguente codice in C
#
# 	x = (x - 2) + y
# 	if(x < 0)
#		x = x + 1
# 	else
#		y = y + 1

.data
	x_string:		.asciz "\n Digita il valore di x: "
	y_string:		.asciz "\n Digita il valore di y: "
	inx_string: 	.asciz "\n Incremento x: "
	iny_string: 	.asciz "\n Incremento y: "
.text
.global start
start:
# Richiesta del valore di x
	la a0, x_string
	li a7, 4
	ecall
	li a7, 5
	ecall
	mv t0, a0
# Richiesta del valore di y	
	la a0, y_string
	li a7, 4
	ecall
	li a7, 5
	ecall
	mv t1, a0
# Blocco che svolge l'operazione ed il salto condizionato
	addi t0, t0, -2 
	add t0, t0, t1
	bgez t0, condizione
	addi t0, t0, 1
# Stampa l'incremento di x
	la a0, inx_string
	li a7, 4
	ecall
	mv a0, t0
	li a7, 1
	ecall
	j end		# Salto alla fine del programma
condizione:
# Stampa l'incremento di y
	addi t1, t1, 1
	la a0, iny_string
	li a7, 4
	ecall
	mv a0, t1
	li a7, 1
	ecall

end:
# Fine del Programma #
	li a7, 10
	ecall