# Linux Kernel Module Cheat

###### 24.17.1.3.1. gem5 `DerivO3CPU` pipeline stages

- fetch: besides obviously fetching the instruction, this is also where branch prediction runs. Presumably because you need to branch predict before deciding what to fetch next.

- retire: the instruction is completely and totally done with.

  Mispeculated instructions never reach this stage as can be seen at: gem5 event queue DerivO3CPU syscall emulation freestanding example analysis: speculative.

  The `ExecAll` happens at this time as well. And therefore `ExecAll` does not happen for mispeculated instructions.