123Fermer125
DEATHLe 03/06/2021 à 23:28
Puisqu'il semble que j'ai mis tout le monde en PLS j'ai une petite question d'optimisation du pipeline (en fait 2)

D'abord,
On est bien d'accord que
cmp R0,R1 jr EQ,noloop nop jump CC,(R2)c'est pareil que :
cmp R0,R1 jump HI,(R2)
?

Les JRISC peuvent ils mettre à jour les FLAGS en même temps qu'une autre instruction écrit dans un registre de destination ?

Dans l'exemple :
cmp r0,r1 move r3,r4 jump hi,(r2)
Est ce que R4 pourra être écrit en même temps que les FLAGS sont mit à jour par l'instruction CMP ?

En gros est ce que ça se passe comme ça :

cmp r0,r1 | Rr0 Rr1 | |
move r3,r4 | Rr3 | ALU cmp |
jump hi,(r2) | Rflags Rr2 | | Wflags Wr4

?
Je ne crois pas avoir vu ce cas expliqué dans la doc (l'instruction cmp étant particulière puisqu'à priori elle ne bloque pas les registres concernés via le scorboard et ne modifie que les flags)