refactoring towards types that can handle exceptions between stages
This commit is contained in:
parent
d7d698a28c
commit
4729d79b23
2 changed files with 8 additions and 9 deletions
|
@ -23,6 +23,7 @@ import Fetch(fetchInstruction, FetchResult (Instruction, Misaligned))
|
|||
import Isa.Decode(decode)
|
||||
|
||||
import Debug.Trace
|
||||
import Types (Insn)
|
||||
|
||||
data Args = Args {
|
||||
firmware :: FilePath
|
||||
|
@ -48,9 +49,6 @@ machine' machine =
|
|||
machineMem = ram $ machinePeripherals
|
||||
machineCPU = cpu machine
|
||||
machinePC = pc machineCPU
|
||||
addr = 0 :: Integer
|
||||
mem' = replace addr (3) machineMem
|
||||
peripherals' = machinePeripherals { ram = mem' }
|
||||
cpu' = machineCPU { pc = machinePC + 4 }
|
||||
|
||||
in
|
||||
|
@ -60,7 +58,7 @@ machine' machine =
|
|||
in trace ("Decoded instruction: " P.++ show opcode
|
||||
P.++ " | Binary: " P.++ binaryInsn
|
||||
P.++ " (" P.++ show insn P.++ ")") $
|
||||
machine { cpu = cpu', peripherals = peripherals' }
|
||||
machine { cpu = cpu' }
|
||||
where
|
||||
opcode = decode insn
|
||||
Misaligned addr -> undefined
|
||||
|
|
Reference in a new issue