static void PosEdge() { if (W.dstE != 0xf) { reg[W.dstE] = W.valE; } if (W.dstM != 0xf) { reg[W.dstM] = W.valM; } W = m; M = e; E = d; if (!D.stall) { D = f; } stat = W.stat; }
static bool Cnd(Prece x, ulong fun) { switch (fun) { case (0): return(true); case (1): return((x.SF ^ x.OF) | x.ZF); case (2): return(x.SF ^ x.OF); case (3): return(x.ZF); case (4): return(!x.ZF); case (5): return(!(x.SF ^ x.OF)); case (6): return(!(x.SF ^ x.OF) & !x.ZF); default: return(false); } }