Hi I'm wondering why FreeBSD has to simulate branches when the faulting instruction is in the branch delay slot. I'm curious about MipsEmulateBranch function, which is defined in http://bxr.su/FreeBSD/sys/mips/mips/trap.c#MipsEmulateBranch Why can't you just restart execution from the branch instruction?