MIPS32 processors have "delayed" loads and branches. The MIPS32 manual says that the instruction immediately following a branch is always executed, regardless of whether the branch is taken or not. Optimizing compilers try to fill a branch delay slot with an appropriate instruction.
Are there any restrictions on the kind of instruction that can be placed in the branch delay slot? Is it possible to place a STW (store word) in the delay slot? Is it possible to fill the delay slot with a multiply-and-add (MADD) instruction, even if MADD needs more than one cycle to complete?
Thanks for your answers.
Julia.