I've done my share of coding on Genesis and 32X, and am now getting into Dreamcast (I love Hitachi SuperH!).
As you know, one of the main differences between SH2 and SH4 is the latter being superscalar.
This means that, for certain instructions, two can run in parallel. eg :
Code: Select all
ADD R2,R1 ; EX
MOV.L @R4,R5 ; LS
For example, in
Code: Select all
SHAD R0,R1 ; EX
ADD R2,R3 ; EX
MOV.L @R4,R5 ; LS
Code: Select all
SHAD R0,R1 ; EX
ADD R2,R3 ; EX
From what I get with figure 8.3 case "a", the "SHAD" instruction will be issued first and alone, THEN the "ADD" and "MOV" instructions will be run in parallel.
Let me picture the situation the way I get it:
Code: Select all
SHAD R0,R1 I D X N S
ADD R2,R3 I -
Code: Select all
ADD R2,R3 I - D X N S
MOV.L @R4,R5 I D X N S
Then, the pipeline keeps on going:
Code: Select all
next I D X
next I D X
next I D
next I D