Skip to main content

MFHI_MFLO_HAZARD_INSTRUCTIONS

Constant MFHI_MFLO_HAZARD_INSTRUCTIONS 

Source
pub const MFHI_MFLO_HAZARD_INSTRUCTIONS: u32 = 2;
Expand description

How many instructions after MFHI/MFLO must not write HI/LO.

A non-interlocked hazard: the hardware does not stall, it produces a wrong result. From n64brew_wiki/markdown/MIPS III instructions.md § Hazards: “The mfhi and mflo instructions will produce incorrect results if any of the two following instructions modify the HI and LO registers.”

Modeling this as a stall would be wrong in both directions: it would add timing that hardware does not have, and it would hide the incorrect result that software can actually observe.