6 import qualified TransSig as T
7 import qualified PreludeSig as Signaled
21 processor ((pgm,pgmdata),startingPC) = retired -- retired
24 (instrs,pc') = ifu (5,pgm) pc ([5,5] `before` space)
25 instrs' = probe "UFO" instrs
27 --testTrans = lift1 (\n -> [pcTrans n]) space
29 pc = delay (pcTrans startingPC) npc
30 npc = if' miss then' (Signaled.last retired )
33 annotated = delay [] (
34 if' miss then' (lift0 [])
35 else' (annotate $ filterOut isNop $ instrs)
38 (retired,ready,space,miss) = rob 100 (annotated, computed)
39 --miss' = if' miss then' (lift0 $ pcTrans 1) else' (lift0 $ pcTrans 0)
41 computed = rs (150,execUnits) (delay False miss, delay [] ready)
44 execUnits :: Word a => [EU DLX_Op (DLX_Cell (Virtual DLXReg Int) a)]
45 execUnits = [addUnit,addUnit,subUnit,jumpUnit,jumpUnit,multUnit,divUnit,cmpUnit,moveUnit]
47 multUnit' b s = probe "mu_out" out
48 where b' = probe "mu_cnt" b