pub struct Executed {
pub write_back: WriteBack,
pub stall_cycles: u32,
pub mem: Option<MemOp>,
pub redirect: Option<Redirect>,
pub cop0: Option<Cop0Access>,
pub link: Option<u8>,
}Expand description
The outcome of executing one instruction in EX.
Fields§
§write_back: WriteBackWhat to commit at WB.
stall_cycles: u32Extra PCycles the whole pipeline stalls for (multiply/divide only).
mem: Option<MemOp>A memory access for DC to perform, if any.
redirect: Option<Redirect>A control-flow redirect, if this was a taken branch, a jump, or an untaken branch-likely.
cop0: Option<Cop0Access>A COP0 access for DC (read) or WB (write) to perform.
link: Option<u8>The GPR a jump-and-link writes its return address to, if any.
Carried separately from write_back because the value cannot be
computed here: the link is the address of the instruction that runs
after this one’s delay slot, which is pc + 8 only when the jump is
not itself in a delay slot. EX fills it in from the live next_pc,
which is that address by construction. See the jump/branch helper in this
module, and accuracy ledger C-19.